catch Funksiýasy
catch funksiýasy try-catch blokunyň bir bölegi bolup, try blokunda atylup bilinjek ýalňyşlyklary tutmak hyzmatyny ýerine ýetirýär. Ýalňyşlyk ýüze çykanda, kodyň ýerine ýetirilişi degişli catch blogyna geçýär, ýerde ýalňyşlyk dolandyrylyp bilner.
Sintaksis
try {
// Ýalňyşlyk atylup bilinjek kod
} catch (ExceptionType $e) {
// Ýalňyşlygy dolandyrmak
}
Mysal
Ýalňyşlygy dolandyrmagyň iň ýönekeý mysaly:
<?php
try {
throw new Exception('Bir zat ýalňyş gitdi');
} catch (Exception $e) {
echo 'Tutulan ýalňyşlyk: ' . $e->getMessage();
}
?>
Kodyň ýerine ýetiriliş netijesi:
'Tutulan ýalňyşlyk: Bir zat ýalňyş gitdi'
Mysal
Tapawutly görnüşdäki ýalňyşlyklary dolandyrmak:
<?php
try {
if (rand(0, 1)) {
throw new InvalidArgumentException('Nädogry argument');
} else {
throw new RuntimeException('Ýerine ýetiriliş ýalňyşlygy');
}
} catch (InvalidArgumentException $e) {
echo 'Nädogry argument: ' . $e->getMessage();
} catch (RuntimeException $e) {
echo 'Ýerine ýetiriliş ýalňyşlygy: ' . $e->getMessage();
} catch (Exception $e) {
echo 'Umumy ýalňyşlyk: ' . $e->getMessage();
}
?>
Kodyň ýerine ýetirilişiniň mümkin bolan netijeleri:
'Nädogry argument: Nädogry argument'
ýa-da
'Ýerine ýetiriliş ýalňyşlygy: Ýerine ýetiriliş ýalňyşlygy'