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
Fifi209
post
Post #2





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

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


Chodzi mi o "ukrycie" try {} catch {} przy używaniu funkcji, które "rzucają" wyjątkami.

Czyli np. zamiast w index.php (gdzie muszę wczytać plik z nagłówkiem) pisać

try {
layout::load($file);
} catch (Exception $e) {
error::save($e);
}

wolałbym coś na wzór taki jak mam teraz:
layout::load($file)

Gdyż nie wyobrażam sobie pisać wszędzie gdzie "rzucam" wyjątkami tak pisać, jeszcze zapomnę i mam error ;d

Teraz do zapisuj błędu mam własną klasę error w pełni statyczną. Błędy podzielone na normalne (te które nie przeszkadzają przy wczytywaniu strony) i krytyczne (te które "zabijają" działanie skryptu).

@offtopic
Zrobili wyjątki, interfejsy nie dość, że jest to niedopracowane to... ehh... lepiej gdyby dali możliwość np. dziedziczenia z kilku klas wielu programistom ułatwiłoby to pracę.

Ten post edytował fifi209 21.03.2009, 22:32:17
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 - 09:56