*Instrukcje try I catch są stosowane do obsłubi błędów w php5



Pobieranie 37,78 Kb.
Data24.04.2018
Rozmiar37,78 Kb.

/*Instrukcje try i catch są stosowane do obsługi błędów w PHP5. Przyjmujemy, że próbujemy "try" wykonać pewne działanie w kodzie PHP - jeśli kod wywoła błąd zgłaszamy "throw" wyjątek. W takiej sytuacji kod powinien przechowywać "catch" wyjątek i odpowiednio zareagować.

Mówiąc prosto, wyjątek zachodzi w przypadku, gdy zdarzy się coś innego, niż przewidywano.


Przykładowa składnia jest następująca
try {

//jakieś działania

//Zgłoszenie wyjątku w przypadku błędu

}

catch (wyjatek) {



//Dowolne operacje

}

Wyjątki można zgłaszać za pomocą kodu o następującej składni:


throw new Exception ('komunikat o błędzie');
Poniższy kod zgłasza obiekt typu Exception- klasy zdefiniowanej w PHP. W celu przechwycenia tego wyjątku należy użyć następującego kodu
catch(Exception $e) gdzie $e jest obiektem typu Exception
Klasa Exception zawiera własne metody (funkcje) wymienione poniżej. Można je wykorzystać w celu uzyskania dostępu do informacji o błędach
Tak więc blok try..catch może mieć natępującą postać
try {

//Jakieś działania

}

catch (Exception $e)



{

echo $e->getMassage();

}
Należy zwrócić uwagę na to, że kod występujący za wykonaną instrukcją throw nigdy się nie uruchomi. Z kolei, jeśli nie wystąpi wyjątek nie wykona się instrukcja catch.
Metody klasy Exception:

getCode()- Przekazany kod jeśli istnieje

getMessage()- Odebrany komunikat jeśli isnieje

getFile()- Nazwa pliku w którym wystąpił wyjątek

getTrace()- Tablica z takimi informacjami, jak nazwa pliku, numer wiersza

__ToString()- Wszystkie poprzednie informacje w postaci ciągu znaków






Obsługa <a href="/operatory-i-wyraenia-pojcia-podstawowe.html">wyjątków</a>





//Identyfikacja pliku

$file='danewyjatki.txt';

//Dane do zapisania

$dane="To jest wiersz danych\n";
//Początek bloku try...catch

try


{//Otwarcie pliku

$fp=@fopen($file, 'aw');

if (!$fp)

{

throw new Exception ('nie można otworzyć pliku.');



}

//Zapis danych do pliku

$zapis=@fwrite($fp, $dane);

if (!$zapis)

{

throw new Exception ('nie może zapisać danych do pliku');



}

if (!@fclose($fp))

{

throw new Exception ('nie można zamknąć pliku');



}

//Jeśli dośliśmy do tego punktu to wszystko działa

echo '
Dane zapisano
';

}

catch (Exception $e)



{

echo '
Procesu nie można zakończyć, ponieważ skrypt '. $e->getMessage() . $e->getFile() .'


';

}

echo '


To jest koniec skryptu
';
?>


try

{

$nazwa_pliku='cytaty.txt';



@$plik=fopen($nazwa_pliku, 'w');

if (!@$plik)

{

throw new Exception ('Nie można otworzyć pliku do zapisu');



}

echo 'Otwarcie się wykonało


';

$dane_do_zapisu="Kto nie ma odwagi starać się o swoje szczęście, tym samym udowadnia wyraźnie, że tego szczęścia nie jest wart-Carlo Goldoni\n

I zapomnij, że jesteś gdy mówisz, że kochasz-Jan Twardowski\n

Być może istnieją czasy piękniejsze, ale te są nasze-Jean-Paul Sartre\n

Ludzie budują za dużo murów, a za mało mostów-Isaac Newton\n

Ja rozumiem, że wam jest zimno, ale jak jest zima to musi być zimno!-Miś\n

Ludzie ludziom zgotowali ten los-Zofia Nałkowska, Medaliony\n";

if (!@fwrite($plik, $dane_do_zapisu))

{

throw new Exception ('Nie można zapisać danych do pliku');



}

echo 'Zapis się wykonał


';

if (!@fclose($plik))

{

throw new Exception ('Nie można zamknąc pliku');



}

echo 'Dane zapisano pozytywnie


';

}

catch (Exception $e)



{

echo 'Wystapił błąd typu '. $e->getMessage(). '


';

}

echo 'To jest koniec wykonania skrytpu


';

?>

try

{

$nazwa_pliku='cytaty.txt';



@$plik=fopen($nazwa_pliku, 'rb');

if(!@$plik)

{

throw new Exception ('Nie mozna otworzyć pliku');



}

echo 'Mądre cytaty


';

while (!feof($plik))

{

$wiersz=fgets($plik,999);



echo "$wiersz
";

}
if(!@fclose($plik))

{

throw new Exception ('Nie można zamknąc pliku');



}
}

catch (Exception $e)



{

echo 'Co mogę napisać, wystąpił błąd '. $e->getMessage(). '


';

}
?>



©operacji.org 2017
wyślij wiadomość

    Strona główna