Start · Sprachen · PHP · Referenz · Uri\UriException

Uri\UriException

Klasse

Basisklasse für alle Ausnahmen der URI-Erweiterung (<code>Uri</code>); ermöglicht gezieltes Abfangen aller URI-bezogenen Fehler.

seit PHP 8.4.0 Kategorie: error

Signatur

class Uri\UriException extends \RuntimeException

Beschreibung

Uri\UriException ist die gemeinsame Basisklasse aller Ausnahmen, die von der nativen Uri-Erweiterung (eingeführt in PHP 8.4) geworfen werden. Durch das Ableiten von \RuntimeException fügt sie sich nahtlos in PHPs Standard-Ausnahme-Hierarchie ein und kann mit dem üblichen try/catch-Muster behandelt werden.

Konkrete Unterklassen – etwa Uri\InvalidUriException oder Uri\MissingComponentException – repräsentieren spezifische Fehlerzustände. Indem man Uri\UriException im catch-Block verwendet, lassen sich alle URI-Fehler auf einmal abfangen, ohne jeden Untertyp einzeln aufführen zu müssen.

Der typische Einsatz besteht darin, beim Parsen, Validieren oder Manipulieren von URIs einen einheitlichen Fehlerbehandlungs-Block zu schreiben und dabei bei Bedarf auf die spezifischere Unterklasse zu verzweigen, wenn eine differenziertere Reaktion gewünscht ist.

Beispiele

Alle URI-Fehler gemeinsam abfangen

<?php
use Uri\Uri;
use Uri\UriException;

try {
    // Ungültige URI – wirft eine Unterklasse von UriException
    $uri = Uri::parse('ht tp://exam ple.com/path');
} catch (UriException $e) {
    echo 'URI-Fehler: ' . $e->getMessage();
}
URI-Fehler: ...

Differenzierte Fehlerbehandlung mit Fallback auf UriException

<?php
use Uri\Uri;
use Uri\UriException;
use Uri\InvalidUriException;

try {
    $uri = Uri::parse('://fehlerhaft');
    $host = $uri->getHost();
} catch (InvalidUriException $e) {
    // Gezielter Zweig für ungültige URIs
    echo 'Ungültige URI: ' . $e->getMessage();
} catch (UriException $e) {
    // Fallback für alle anderen URI-Fehler
    echo 'Sonstiger URI-Fehler: ' . $e->getMessage();
}
Ungültige URI: ...

// Wichtig · Fallstricke

Verfügbarkeit: Die Uri-Erweiterung und damit auch Uri\UriException sind ab PHP 8.4 als Kern-Erweiterung verfügbar und müssen nicht separat installiert werden.

Da Uri\UriException von \RuntimeException erbt, kann sie auch als \RuntimeException oder \Exception abgefangen werden – für maximale Spezifität sollte jedoch stets der engstmögliche Typ verwendet werden.