Przejdź do głównej zawartości

Obsługa błędów w PHP

Obsługa błędów w PHP

Każda aplikacja napotyka błędy - od literowek w kodzie po problemy z baza danych czy plikami. PHP oferuje dwa główne mechanizmy obsługi problemow: tradycyjny system błędów (errors) i nowoczesny system wyjatkow (exceptions). Zrozumienie różnic miedzy nimi oraz umiejetnosc ich prawidłowej obsługi jest kluczowa dla tworzenia stabilnych i bezpiecznych aplikacji. W środowisku produkcyjnym błędy musza być logowane, ale nie wyświetlane uzytkownikom.

  • Stabilnosc aplikacji - Prawidłowa obsługa błędów zapobiega “białym ekranom”
  • Bezpieczeństwo - Ukrywanie szczegółów błędów chroni przed wyciekiem informacji
  • Debugowanie - Dobre logowanie błędów ułatwia znajdowanie problemow
  • Profesjonalizm - Każda powazna aplikacja wymaga obsługi wyjatkow
  1. Rozumiec różnicę miedzy błędami (errors) a wyjatkami (exceptions)
  2. Umiec wyjaśnić poziomy raportowania błędów (error_reporting)
  3. Potrafic pokazac użycie bloku try/catch do obsługi wyjatkow
  4. Wiedzieć, jak stosowac różne konfiguracje dla środowiska dev i produkcji
  1. Typy błędów w PHP

    • E_ERROR - błędy krytyczne (zatrzymuja skrypt)
    • E_WARNING - ostrzezenia (skrypt działa dalej)
    • E_NOTICE - powiadomienia (drobne problemy)
    • E_PARSE - błędy składni
  2. Konfiguracja raportowania

    • error_reporting() - ustawianie poziomu
    • display_errors - wyswietlanie na ekranie
    • log_errors - logowanie do pliku
    • error_log - ścieżka do pliku logow
  3. System wyjatkow

    • Klasa Exception - podstawowa klasa wyjatkow
    • Klasa Error (PHP 7+) - błędy jako wyjatki
    • Throwable - wspolny interfejs
    • Hierarchia wyjatkow
  4. Blok try/catch/finally

    • try - kod który może rzucic wyjatek
    • catch - przechwytywanie wyjatkow
    • finally - kod wykonywany zawsze
    • throw - rzucanie wyjatkow

Przykład 1

try/catch - pokaz przechwytywanie i obsługę wyjatku

Przykład 2

Rzucanie wyjatku - użyj throw new Exception()

Przykład 3

error_reporting - ustaw poziom raportowania błędów

Przykład 4

Konfiguracja produkcyjna - ukryj błędy, włącz logowanie

  • Tworzenie własnych klas wyjatkow (extends Exception)
  • Użycie set_exception_handler() do globalnej obsługi
  • Użycie set_error_handler() do konwersji błędów na wyjatki
  • Blok finally i jego zastosowania
  • Lancuchowanie wyjatkow (previous exception)
  • Porownanie z innymi jezykami (Java, Python)
  1. Wstep (0.5 strony) - dlaczego obsługa błędów jest ważna
  2. Typy błędów w PHP (1 strona) - E_ERROR, E_WARNING, E_NOTICE
  3. Konfiguracja raportowania (1 strona) - error_reporting, display_errors
  4. System wyjatkow (1.5 strony) - Exception, try/catch, throw
  5. Dev vs produkcja (1 strona) - różne konfiguracje, logowanie
  6. Podsumowanie (0.5 strony) - dobre praktyki
  7. Bibliografia
  1. Czym rozni się Exception od Error w PHP 7+?
  2. Dlaczego nie wyswietlamy błędów w środowisku produkcyjnym?
  3. Jaka jest różnica miedzy E_ERROR a E_WARNING?
  4. Co się stanie jeśli wyjatek nie zostanie przechwycony?
  5. Kiedy wykona się blok finally?
  6. Jak przekonwertować błędy na wyjatki przy uzyciu set_error_handler?

To więcej niz praca zaliczeniowa

Opracowanie tego tematu to szansa, by naprawde zrozumiec jak profesjonalne aplikacje radza sobie z problemami. Umiejetnosc prawidłowej obsługi błędów odroznia amatorski kod od produkcyjnego.

Wykorzystaj lekcje - konsultuj watpliwosci, pokazuj postepy! Pracuj iteracyjnie - outline -> draft -> kod -> redakcja