Wyjątki
[35]
<?php
/*
throw - zgłoś wyjątek
chatch - łap wyjątek jaki się zdarzył w bloku try {}
*/
function Koduj(int $cyfra) : int {
$kod=10-$cyfra;
if ($kod <= 0) {
throw new Exception('To nie jest cyfra! ['.$cyfra.']');
}
return $kod;
}
$komunikat = [9,2,1,10,9,2];
try {
for ($i=0; $i<count($komunikat); $i++) {
$komunikat[$i]=Koduj($komunikat[$i]);
}
} catch (Exception $e) {
echo 'Nastąpił wyjątek: '.$e->getMessage();
}
Do konstrukcji try {} można dodać wiele sekcji catch (dla różnych wyjątków) oraz finally {} - dla końcowej obsługi (także w sytuacji, gdy wczęsniej obsłużono wyjątek).
<?php
/*
throw - zgłoś wyjątek
charch - łap wyjątek jaki się zdarzył w bloku try {}
*/
function Koduj(int $cyfra) : int {
$kod=10-$cyfra;
if ($kod <= 0) {
throw new Exception('To nie jest cyfra! ['.$cyfra.']');
}
return $kod;
}
$komunikat = [9,2,1,10,9,2];
try {
for ($i=0; $i<count($komunikat); $i++) {
$komunikat[$i]=Koduj($komunikat[$i]);
}
} catch (Exception $e) {
echo 'Nastąpił wyjątek: '.$e->getMessage();
}
W PHP dostępne są następujące wbudowane podklasy klasy Exception :
Exception (http://php.net/manual/class.exception.php ),
ErrorException (http://php.net/manual/class.errorexception.php ).
Biblioteka standardowa PHP (http://php.net/manual/book.spl.php ) zawiera następujące podklasy wyjątków:
LogicException (http://php.net/manual/class.logicexception.php ),
BadFunctionCallException (http://php.net/manual/class.badfunctioncallexception.php) ,
BadMethodCallException (http://php.net/manual/class.badmethodcallexception.php ),
DomainException (http://php.net/manual/class.domainexception.php ),
InvalidArgumentException (http://php.net/manual/class.invalidargumentexception.php ),
LengthException (http://php.net/manual/class.lengthexception.php ),
OutOfRangeException (http://php.net/manual/class.outofrangeexception.php ),
RuntimeException (http://php.net/manual/class.runtimeexception.php)
OutOfBoundsException (http://php.net/manual/class.outofboundsexception.php ),
OverflowException (http://php.net/manual/class.overflowexception.php ),
RangeException (http://php.net/manual/class.rangeexception.php ),
UnderflowException (http://php.net/manual/class.underflowexception.php ),
UnexpectedValueException (http://php.net/manual/class.unexpectedvalueexception.php).