Obsługa błędów PHP

| | | | | | | | | | | | | | | | | | |
Metody obsługi błędów PHP:
  • Korzystanie z metody die()
  • Niestandardowa obsługa błędów
Podstawowa obsługa błędów: używanie funkcja die()Funkcja die() drukuje komunikat i kończy bieżący skrypt.Składnia:
die ($wiadomość)
Przykład:< /b>
// Kod PHP pokazujący domyślną obsługę błędów$file = fopen ( "engineer.txt" , "w" ); ?> Uwaga.Uruchom powyższy kod, a brakuje pliku engineer.txt , a następnie zostanie wyświetlony błąd w czasie wykonywania.
Błąd w czasie wykonywania:
Ostrzeżenie PHP: fopen (engineer.txt): nie udało się otworzyć strumienia: Odmowa uprawnień w /home/dac923dff0a2558b37ba742613273073.php w wierszu 2
Aby zapobiec temu błędowi, użyj funkcji die(). Funkcja die() jest zaimplementowana poniżej:Przykład:
// kod PHP do sprawdzania błędów
// jeśli nie ma pliku
// następnie zamknij skryptjeśli (! file_exists ( "engineer.txt" )) { umierać ( " Brak pliku " ); }
// jeśli plik jest obecny
// następnie kontynuujinaczej { $file = fopen ( " inżynier.txt " , " w " ); }
?>
Uwaga.Jeśli plik jest inżynierskim Brak pliku .txt, wyświetli dane wyjściowe.
Zakończ
Plik nie jest obecny
Niestandardowe programy obsługi błędów:Tworzenie niestandardowego obsługa błędów w PHP jest bardzo prosta. Utwórz funkcję, która może zostać wywołana, gdy wystąpi błąd w PHP.Składnia:
error_function ($error_level, $error_message, $error_file, $error_line, $error_context)
Parametry:Ta funkcja przyjmuje pięć parametrów opisanych powyżej i opisanych poniżej:
  • $error_level: Jest to wymagany parametr i musi być liczbą całkowitą. Istnieją wstępnie zdefiniowane poziomy błędów.
  • $error_message:Jest to wymagany parametr i jest to wiadomość, którą użytkownik chce wydrukować.
  • $ error_file: jest opcjonalnym parametrem używanym do określenia pliku, w którym wystąpił błąd.
  • $error_line:jest opcjonalnym parametrem używanym do określenia numeru wiersza, w którym wystąpił błąd wystąpił.
  • $error_context:jest to parametr opcjonalny, który jest używany do określenia tablicy zawierającej każdą zmienną i jej wartość w przypadku wystąpienia błędu.
poziom_błędu:są to możliwe poziomy błędów, które są wymienione poniżej:
  • 1: .E_ERROR: krytyczny błąd wykonania został zatrzymany
  • 2: E_OSTRZEŻENIE: nie- krytyczny błąd wykonania, wykonanie skryptu zatrzymane
  • 4: E_PARSE: błąd w czasie kompilacji wygenerowany przez parser
  • 8: E_NOT ICE: skrypt napotkał coś, co może być błędem
  • 16: E_CORE_ERROR: błędy krytyczne, które wystąpiły podczas początkowego uruchomienia skryptu
  • 32: E_CORE_WARNING: błędy niekrytyczne, które wystąpiły podczas początkowego uruchomienia skryptu
  • 8191: E_ALL: wszystkie błędy i ostrzeżenia
funkcja set_error_handler():Po utworzeniu funkcji myerror() musisz zainstalować niestandardową procedurę obsługi błędów, ponieważ PHP normalnie ją obsługuje, ale jeśli użytkownik wykonuje niestandardową obsługę błędów, użytkownik powinien ustawić to zamiast argumentu i przekazać funkcję myerror jako ciąg.Przykład:
// Utwórz moją funkcję błędu, która wyświetla komunikat
// użytkownikfunkcja mój błąd ( $error_no , $error_msg ) { echo "Błąd: [$error_no] $error_msg" ; echo "Teraz skrypt się zakończy" ; // Jeśli wystąpi błąd, skrypt musi być zatrzymanym die (); }
// Ustawienie set_error_handlerset_error_handler ( "mój błąd" ); $a = 10; $b = 0;
// To będzie wygeneruj błądecho ( $a / $b ) ;; ?>
Wyjście:
Błąd: [2] Dzielenie b y zero Teraz Skrypt się zakończy
Wyjście:zawsze próbuj obsługiwać błędy przy użyciu niestandardowej obsługi błędów, ponieważ pokaże bardziej szczegółowy komunikat w zależności od użytkownika, co może być przydatne dla użytkownika. Jeśli błąd nie jest obsługiwany przez niestandardową obsługę błędów, to wystąpi błąd, wtedy skrypt zostanie domyślnie zatrzymany, ale jeśli obsłuży błąd z niestandardową obsługą błędów, może kontynuować skrypt po wyświetleniu komunikatu o błędzie.