Blok try-catch
Założenie: Pokażemy, jak używać bloku try-catch
do obsługi wyjątków (exception) w PHP, zapobiegając awaryjnemu zakończeniu skryptu.
Krok po kroku:
- Próba podzielenia przez zero: Spróbujmy wykonać operację dzielenia przez zero, co spowoduje wyjątek.
- Obsługa innego typu wyjątku: Teraz spróbujmy otworzyć plik, którego nie ma.
- Własny wyjątek: Możemy również tworzyć własne wyjątki.
try {
$result = 10 / 0;
echo "Wynik: " . $result;
} catch (DivisionByZeroError $e) {
echo "Wystąpił błąd: " . $e->getMessage();
}
Ten kod umieszcza operację dzielenia w bloku try
. Jeśli wystąpi błąd DivisionByZeroError
(dzielenie przez zero), kod w bloku catch
zostanie wykonany, wyświetlając komunikat o błędzie. Bez try-catch
skrypt zakończyłby się awaryjnie.
try {
$file = fopen("nieistniejacy_plik.txt", "r");
if ($file) {
fclose($file);
}
} catch (Exception $e) {
echo "Wystąpił inny błąd: " . $e->getMessage();
}
Tutaj używamy ogólnego Exception
, który przechwyci dowolny błąd. fopen()
może zgłosić różne wyjątki, w zależności od przyczyny błędu.
class MyException extends Exception {}
try {
throw new MyException("To jest mój własny wyjątek!");
} catch (MyException $e) {
echo "Złapano mój wyjątek: " . $e->getMessage();
}
Tworzymy klasę MyException
dziedziczącą po Exception
i rzucamy (throw
) nowy obiekt tego typu. Blok catch
przechwytuje tylko wyjątki typu MyException
.
Ten przykład pokazuje podstawowe zastosowanie bloku try-catch
w PHP. Zachęcamy do dalszego zgłębiania tematu obsługi wyjątków, aby pisać bardziej odporny i stabilny kod.