Signatur
Beschreibung
UI\Exception\InvalidArgumentException ist eine spezialisierte Ausnahme der PHP-UI-Erweiterung (ext/ui). Sie erweitert die eingebaute \InvalidArgumentException und wird geworfen, wenn API-Aufrufe der UI-Bibliothek Argumente erhalten, die nicht dem erwarteten Typ, Wertebereich oder Format entsprechen.
Typische Auslöser sind zum Beispiel das Übergeben eines negativen Wertes, wo eine positive Zahl erwartet wird, ein falscher Objekttyp als Widget-Parameter oder ein ungültiger Farb- bzw. Koordinatenwert in grafischen UI-Operationen.
Da sie von der Standard-SPL-Klasse \InvalidArgumentException erbt, kann sie sowohl mit catch (UI\Exception\InvalidArgumentException $e) als auch mit dem allgemeineren catch (\InvalidArgumentException $e) abgefangen werden. Für eine präzise Fehlerbehandlung in UI-Anwendungen empfiehlt sich jedoch der spezifische Catch-Block.
Die Klasse gehört zur PHP-UI-Erweiterung, die auf libui basiert und plattformübergreifende Desktop-GUIs direkt aus PHP heraus ermöglicht. Die Erweiterung ist nicht im Standard-PHP-Lieferumfang enthalten und muss separat installiert werden.
Beispiele
Abfangen einer ungültigen Argument-Ausnahme bei UI-Aufrufen
<?php
use UI\Exception\InvalidArgumentException;
try {
// Beispiel: Ein UI-Widget wird mit einem ungültigen Argument erstellt
$point = new UI\Point(-1, -1); // Annahme: negative Werte sind nicht erlaubt
} catch (InvalidArgumentException $e) {
echo 'Ungültiges Argument: ' . $e->getMessage() . PHP_EOL;
echo 'In Datei: ' . $e->getFile() . ', Zeile: ' . $e->getLine() . PHP_EOL;
}
Hierarchisches Abfangen mit Fallback auf Standard-InvalidArgumentException
<?php
use UI\Exception\InvalidArgumentException as UIInvalidArgument;
function createControl(string $type, mixed $value): void {
// Simuliert einen UI-API-Aufruf
if ($type === 'slider' && ($value < 0 || $value > 100)) {
throw new UIInvalidArgument(
"Slider-Wert muss zwischen 0 und 100 liegen, '$value' gegeben."
);
}
echo "Control '$type' mit Wert $value erstellt." . PHP_EOL;
}
try {
createControl('slider', 150);
} catch (UIInvalidArgument $e) {
echo '[UI-Fehler] ' . $e->getMessage() . PHP_EOL;
} catch (\InvalidArgumentException $e) {
echo '[Allgemeiner Fehler] ' . $e->getMessage() . PHP_EOL;
}
// Wichtig · Fallstricke
Achtung: Die PHP-UI-Erweiterung (ext/ui) ist ein experimentelles PECL-Paket und nicht Teil der Standard-PHP-Distribution. Für Produktivumgebungen ist Vorsicht geboten, da sich API und Ausnahmehierarchie noch ändern können.
Da UI\Exception\InvalidArgumentException von \InvalidArgumentException erbt, die wiederum von \LogicException und letztlich von \Exception abstammt, sind alle Methoden der Basis-Exception-Klasse verfügbar (getMessage(), getCode(), getTrace() etc.).