Dobre praktyki obsługi wyjątków
Założenie: Pokażemy, jak prawidłowo obsługiwać wyjątki w PHP, w szczególności jak logować nieprzechwycone wyjątki, aby ułatwić debugowanie.
Krok po kroku:
- Tworzenie funkcji, która może zgłaszać wyjątek:
function dzielenie($a, $b) { if ($b == 0) { throw new Exception("Dzielenie przez zero!"); } return $a / $b; }
Funkcja
dzielenie
zgłasza wyjątekException
, jeśli drugi argument jest równy zero. - Obsługa wyjątków za pomocą bloku
try...catch
:try { $wynik = dzielenie(10, 2); echo "Wynik: " . $wynik . "
"; $wynik = dzielenie(10, 0); echo "Wynik: " . $wynik . "
"; } catch (Exception $e) { echo "Wystąpił błąd: " . $e->getMessage() . "
"; // Logowanie błędu (np. do pliku) error_log("Wyjątek: " . $e->getMessage() . " w pliku: " . $e->getFile() . " w linii: " . $e->getLine(), 3, "error.log"); }Blok
try
zawiera kod, który może zgłosić wyjątek. Blokcatch
przechwytuje wyjątek i wykonuje odpowiednie działania. Dodatkowo, błąd jest logowany do pliku “error.log” za pomocą funkcji `error_log`. - Obsługa nieprzechwyconych wyjątków (opcjonalnie):
set_exception_handler(function ($exception) { error_log("Nieprzechwycony wyjątek: " . $exception->getMessage() . " w pliku: " . $exception->getFile() . " w linii: " . $exception->getLine(), 3, "error.log"); });
Funkcja `set_exception_handler` ustawia funkcję, która będzie wywoływana w przypadku nieprzechwyconych wyjątków. To zapewnia, że nawet jeśli wyjątek nie zostanie obsłużony w bloku `try…catch`, zostanie zalogowany.
Ten przykład pokazuje podstawy obsługi wyjątków w PHP. Pamiętaj, że odpowiednie logowanie wyjątków jest kluczowe dla efektywnego debugowania i utrzymania aplikacji.
Zachęcamy do dalszego zgłębiania tematu obsługi wyjątków w PHP, aby tworzyć bardziej robustne i niezawodne aplikacje.