Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Exception - obsługa wyjątków.
Fifi209
post
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Od kilku dni próbuję pojąć "rzucanie" wyjątków.

W swoich klasach "rzucam" wyjątkami przy wystąpieniu błędów typu critical dla mojej aplikacji (czyli takie, które uniemożliwiają dalsze działanie aplikacji)

Powiedzmy, że wyjątki wydają mi się troszkę "nieporęczne" w użytku.

Mam przykładowo:
(piszę od ręki)

Kod
class layout {

// jakieś metody

function load($dir, $file) {

if (file_exists(/* argumenty)) {
// include
}else{
// rzucam wyjątkiem
throw new Exception('Nie mogę załadować pliku xxx.php');
}
}
}


I potem w innym pliku chcąc "złapać" wyjątek...

Kod
try {
$handle->load($plik);
} catch {
// obsługa błędu, czy to zapisanie loga czy wyświetlenie użytkownikowi informacji o błędzie
}


Według moich założeń, wyjątkami rzucałbym tylko przy błędach krytycznych, o których pisałem wyżej.
I tak jest ich sporo, a używanie wszędzie try { } catch { } jest co najmniej nie wygodne.

Macie jakieś swoje pomysły? Doświadczenia ? Co do łapania wyjątków i ich obsługi ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Błędy podzielone na normalne (te które nie przeszkadzają przy wczytywaniu strony)

To robisz po prostu trigger_error" title="Zobacz w manualu PHP" target="_manual. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
i krytyczne (te które "zabijają" działanie skryptu).

W uproszczeniu:
  1. <?php
  2. try{
  3.   require 'core.php';
  4.   app::boot();
  5. }catch(coreException $ex){
  6.   mail(... "coś nawaliło: ".$ex);
  7.   echo "poważny błąd aplikacji, admin już wie, co robić";
  8. }
  9. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 15:07