Komanda throw
Komanda throw naudojama aiškiai išmesti išimčiai PHP.
Ji priima vieną parametrą - išimties objektą, kuris turi būti bazinės klasės Exception paveldėtos klasės egzempliorius.
Iškvietus šią funkciją, dabartinio kodo vykdymas nedelsiant nutrūksta, ir PHP bando rasti atitinkamą catch bloką išmestai išimčiai apdoroti.
Sintaksė
throw new ExceptionClass(message, code, previous);
Pavyzdys
Paprastas išimties generavimo pavyzdys:
<?php
$age = -5;
if ($age < 0) {
throw new Exception('Amžius negali būti neigiamas');
}
?>
Kodo vykdymo rezultatas:
Fatal error: Uncaught Exception: Amžius negali būti neigiamas
Pavyzdys
Pavyzdys su išimties apdorojimu:
<?php
try {
$res = 10 / 0;
if (is_infinite($res)) {
throw new Exception('Dalyba iš nulio');
}
} catch (Exception $e) {
echo 'Klaida: ' . $e->getMessage();
}
?>
Kodo vykdymo rezultatas:
'Klaida: Dalyba iš nulio'
Pavyzdys
Pasirinktinės išimties naudojimas:
<?php
class MyCustomException extends Exception {}
try {
throw new MyCustomException('Pasirinktinė klaidos žinutė');
} catch (MyCustomException $e) {
echo 'Pasirinktinė klaida pagauta: ' . $e->getMessage();
}
?>
Kodo vykdymo rezultatas:
'Pasirinktinė klaida pagauta: Pasirinktinė klaidos žinutė'