Jak zastosować blok próbuj Catch w PHP

Jak zastosować blok próbuj Catch w PHP
Obsługa wyjątków jest bardzo ważną cechą każdego programowania obiektowego. Gdy po wykonaniu dowolnego kodu pojawia się jakikolwiek błąd logiczny lub system. Służy do uniknięcia nieoczekiwanych wyników użytkowników końcowych, ulepszanie bezpieczeństwa aplikacji i skutecznie obsługiwać predefiniowane błędy. Ta funkcja jest obsługiwana przez PHP z wersji 5. Próbować I złapać Blok służy do obsługi wyjątków w programowaniu obiektowym. Próbować blok służy do rzucenia wyjątku, jeśli wystąpi jakikolwiek błąd złapać Lub Wreszcie Blok służy do obsługi wyjątku w PHP. Ten samouczek pomoże Ci poznać korzystanie z obsługi wyjątków programowania obiektowego za pomocą PHP.

Wypróbuj blok

PHP ma podstawową klasę o nazwie Wyjątek i wyjątki są wyrzucane z próbować blokować Wyjątek lub podklasa Wyjątek klasa.

Składnia:

próbować

//Kod główny

Zatrzymaj blok

Złapać Blok pojawia się po próbować blok. PHP obsługuje wiele złapać bloki do obsługi wielu wyjątków. Kiedy jakikolwiek wyjątek rzuca, PHP próbuje dopasować do pierwszego bloku połowowego, a następnie drugi blok połowowy, jeśli nie pasuje do pierwszego i tak dalej.

Składnia:

próbować

//Kod główny

Catch (wyjątek $ e)

// Kod obsługi błędów

Wreszcie blok

Wreszcie blok może być używany po lub zamiast bloku połowowego w php, a ten blok wykonuje się, gdy wypróbuj blok wyjściowy. Każdy normalny lub zakończenia można dodać do tego bloku po wykonaniu kodu bloku próbnego.

Składnia:

próbować

//Kod główny

Catch (wyjątek $ e)

// Kod obsługi błędów

Wreszcie

// normalny kod

Przykład-1: Używanie bloku TRY-Catch dla prostego błędu

Poniższy przykład pokazuje użycie bloku próbnego dla jednego wyjątku. Utwórz plik PHP z następującym skryptem. Wartość parametru zapytania 'num„Został odczytany i sprawdzony w bloku próbnym. Jeśli wartość jest poniżej 10, wówczas blok próba rzuci wyjątek w bloku połowowym. W przeciwnym razie wartość zostanie wydrukowana. Block Catch złapie wyjątek i wydrukuje wiadomość wysyłaną z bloku próbowania. Jeśli nie przechodzi parametr zapytania, wartość domyślna wyniesie 100.

// Testuj liczbę to 10 lub więcej
próbować

if (isset ($ _ get ['num'])))
// Przeczytaj wartość z adresu URL
$ n = $ _get ['num'];
w przeciwnym razie
// Ustaw wartość domyślną
$ n = 100;
if ($ n <10)

// Jeśli wyjątek rzuci, wówczas blok Catch wyświetli następujący komunikat o błędzie
Rzuć nowy wyjątek (”

Liczba musi wynosić 10 lub więcej.

");

w przeciwnym razie

// Wykonuje ten wiersz, jeśli nie pojawi się błąd.
Echo "

Liczba to $ n

";


// Złóż wyjątek z bloku próbnego
Catch (wyjątek $ e)

// Wydrukuj komunikat o błędzie przekazany z bloku próbnego
echo $ e-> getMessage ();

?>

Wyjście:

Uruchom skrypt bez żadnego parametru zapytania.

http: // localhost/phpcode/trycatch1.php

Uruchom skrypt z wartością parametrów zapytania, która jest mniejsza niż 10.

http: // localhost/phpcode/trycatch1.php?num = 5

Uruchom skrypt z wartością parametrów zapytania, która jest większa niż 10.

http: // localhost/phpcode/trycatch1.php?NUM = 15

Przykład-2: Obsługa wielu błędów poprzez odziedziczenie klasy wyjątków

Utwórz plik PHP z następującym skryptem, aby obsłużyć wiele wyjątków za pomocą wielu bloków połowowych. Podklasa nazwana 'MyException„został stworzony przez rozszerzenie klasy podstawowej”Wyjątek`` radzić sobie z ''Nieprawidłowy błąd adresu URL'. Klasa podstawowa Wyjątek był używany do obsługiPusty błąd adresu URL'.

// zadeklaruj podklasę MyException, rozszerzając klasę wyjątków
Klasa MyException rozszerza wyjątek
// Ustaw komunikat o błędzie w konstruktorze
funkcja publiczna __Construct ($ message = null, $ code = 0)
$ this-> message = $ message;

// Wyświetl komunikat o błędzie
funkcja publiczna display_error ()

Echo '

'.$ this-> wiadomość.„Nie jest prawidłowym adresem URL

';;


próbować

// Ustaw adres URL za pomocą parametru zapytania lub wartości domyślnej
$ url = isset ($ _ get ['url'])?$ _Get ['url']: "https: // linuxhint.com ";
// Sprawdź, czy adres URL jest pusty, czy nie
if ($ url == "")
// Jeśli adres URL jest pusty, wówczas wyrzuci następujący komunikat o błędzie
Rzuć nowy wyjątek (”

Adres URL jest pusty.

");

// Sprawdź, czy adresy URL są prawidłowe lub nieprawidłowe
Elseif (!Filter_var ($ url, filtr_validate_url))
// Jeśli adres URL jest nieprawidłowy, wyjątek rzuci z nieprawidłowym adresem URL
Rzuć nowe MyException ($ url);

w przeciwnym razie

// Wydrukuj wiadomość dla prawidłowego adresu URL
Echo "

".$ url.„To prawidłowy adres URL

";


// obsługa nieprawidłowego wyjątku
Catch (myException $ e)
// wywołać metodę podklasy, aby wydrukować komunikat o błędzie
echo $ e-> display_error ();

// Obsługuj pusty wyjątek URL
Catch (wyjątek $ e)

// Wydrukuj komunikat o błędzie dla pustego adresu URL
echo $ e-> getMessage ();

?>

Wyjście:

Uruchom skrypt bez żadnego parametru zapytania.

http: // localhost/phpcode/trycatch2.php

Uruchom skrypt z wymienionym parametrem zapytania URL bez żadnej wartości.

http: // localhost/phpcode/trycatch2.php?URL =

Uruchom skrypt z wymienionym parametrem zapytania URL z nieprawidłową wartością adresu URL.

http: // localhost/phpcode/trycatch2.php?URL = Google

Uruchom skrypt z wymienionym parametrem zapytania URL Z ważną wartością URL.

http: // localhost/phpcode/trycatch2.php?url = http: // Google.com
Obraz

Przykład-3: Obsługa błędu pliku za pomocą TRY, CATH i Wreszcie blok

Utwórz plik PHP z następującym skryptem, aby poznać użycie try, catch i wreszcie blokuj. Skrypt będzie próbował otworzyć test pliku.txt 'i próba blok wyrzuci wyjątek, jeśli plik nie istnieje w bieżącej lokalizacji lub nie jest w stanie otworzyć. Blok połowowy wydrukuje komunikat o błędzie wyrzucony z bloku try. Kod bloku wreszcie zamknie obsługę plików po wykonaniu bloku próbowania. Wypróbuj blok wydrukuje zawartość pliku, jeśli nie pojawi się błąd.

error_reporting (0);
próbować

// Spróbuj otworzyć plik do odczytu
$ file_handler = fopen ("test testowy.txt "," r ");
Jeśli(!$ file_handler)

// Rzuć wyjątek, jeśli plik nie jest w stanie otworzyć
Rzuć nowy wyjątek (”

Nie można otworzyć pliku.

");

w przeciwnym razie

// Wydrukuj centent plik
chwila(!feOF ($ plik_handler))

Echo CGES ($ FILE_HANDLER) . "
";

fclose ($ plik_handler);


Catch (wyjątek $ e)
// Wydrukuj komunikat o błędzie otwierającego błąd pliku
echo $ e-> getMessage ();

Wreszcie

// Wydrukuj komunikat o zakończeniu
Program Echo „zakończył się program.";

?>

Wyjście:

Uruchom skrypt.

http: // localhost/phpcode/trycatch3.php

Przykład-4: Za pomocą zagnieżdżonego bloku próbki

Utwórz plik PHP z następującym skryptem, aby poznać sposób korzystania z zagnieżdżonego bloku próbki. Skrypt sprawdzi wartość pobraną z adresu URL to liczba lub nie w pierwszym bloku Try-Catch, a pobrana liczba jest większa niż 100 lub nie, zostanie sprawdzona w drugim bloku Try-Catch.

if (isset ($ _ get ['n']))

// Pierwszy blok próbny
próbować
$ number = $ _get ['n'];
if (is_numeric ($ numer))

// Drugi blok próba
próbować
if ($ numer> = 100)
// Wydrukuj komunikat sukcesu
echo "Numer jest ważny.";

w przeciwnym razie
Rzuć nowy wyjątek („liczba jest nieprawidłowa.');


Catch (wyjątek $ e)
// Wydrukuj drugi błąd
echo $ e-> getMessage ();


w przeciwnym razie

Rzuć nowy wyjątek („Wartość nie jest liczbą.');


Catch (wyjątek $ e)
// Wydrukuj błąd FIRT
echo $ e-> getMessage () . "
";


w przeciwnym razie
echo „żadna liczba nie dała.";
?>

Wyjście:

Uruchom skrypt bez żadnego parametru zapytania.

http: // localhost/phpcode/trycatch4.php

Uruchom skrypt z wartością parametru zapytania mniej niż 100.

http: // localhost/phpcode/trycatch4.php?n = 78

Uruchom skrypt z wartością parametrów zapytania większej niż 100.

http: // localhost/phpcode/trycatch4.php?n = 112

Przykład-5: Za pomocą bloku TRY-Catch z funkcją

Utwórz plik PHP z następującym skryptem, aby poznać użycie bloku Try-Catch z funkcją. Skrypt przyjmie dwie wartości liczbowe z parametrów zapytania URL, a blok próbki wywoła funkcję, która rzuci wyjątek, jeśli „Dzielenie przez zero" wystąpił błąd.

// Zdefiniuj funkcję obliczania podziału
Dział funkcji ($ a, $ b)
$ wynik = $ a/$ b;
Jeśli(!$ wynik)
// Rzuć wyjątek dla nieprawidłowego wyniku
Rzuć nowy wyjątek („Division by Zero.');
w przeciwnym razie
Echo "

Wynik wyniku $ a/$ b = $

";

if (isset ($ _ get ['n1']) && isset ($ _ get ['n2']))))

próbować
$ number1 = $ _get ['n1'];
$ Number2 = $ _get ['n2'];
// Funkcja wywołania, która sprawdzi błąd
podział (numer 1, numer 2 $);

catch (DivisionByzeroError $ e)
// Wydrukuj komunikat o błędzie
Echo '

Błąd: ', $ e-> getMessage (), "

";


w przeciwnym razie
echo "Nie dostarczone jest jedna lub więcej liczb.";
?>

Wyjście:

Uruchom skrypt bez żadnego parametru zapytania.

http: // localhost/phpcode/trycatch5.php

Uruchom skrypt z wartościami parametrów zapytania, 10 i 5.

http: // localhost/phpcode/trycatch5.php?n1 = 10 i n2 = 5

Uruchom skrypt z wartościami parametrów zapytania, 10 i 0.

http: // localhost/phpcode/trycatch5.php?n1 = 10 i n2 = 0

Przykład-6: Wyświetl komunikat o błędzie szczegółowo dla niestandardowego wyjątku

Utwórz plik PHP z następującym skryptem, aby szczegółowo wyświetlić komunikat o błędzie za pomocą różnych metod klasy wyjątków. Skrypt przyjmie nazwę pliku z parametru URL i sprawdź, czy plik istnieje lub nie za pomocą bloku próbnego.

if (isset ($ _ get ['fn'])))

próbować
$ filename = $ _get ['fn'];
Jeśli(!plik_exists ($ nazwa pliku))

Rzuć nowy wyjątek („Plik nie istnieje.');


Catch (wyjątek $ e)
// Wyświetl komunikat o błędzie szczegółowo
Echo '
Nazwa pliku: '.$ e-> getFile ().
'
Błąd wystąpił w numerze online: '.$ e-> getline ().
'
Komunikat o błędzie: '.$ e-> getMessage ();

Wreszcie
Echo "
Sprawdź inny plik.";


w przeciwnym razie
echo „nazwa pliku nie dała.";
?>

Wyjście:

Uruchom skrypt bez żadnego parametru zapytania.

http: // localhost/phpcode/trycatch6.php

Uruchom skrypt z parametrem zapytania, który zawiera nieistniejącą nazwę pliku.

http: // localhost/phpcode/trycatch6.php?fn = tekst.tekst

Uruchom skrypt z parametrem zapytania, który zawiera istniejącą nazwę pliku.

http: // localhost/phpcode/trycatch6.php?fn = trycatch5.php

Wniosek

Podstawowe zastosowania bloku próbnego zostały wyjaśnione w tym samouczku za pomocą bardzo prostych skryptów PHP. Mam nadzieję, że koncepcja obsługi wyjątków w PHP zostanie usunięta po prawidłowym ćwiczeniu przykładów tego samouczka.