![]() |
![]() |
![]()
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 ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Generalnie, wyjątki stosuje się w sytuacjach, gdy błąd uniemożliwia dalsze działanie konkretnego kodu, np.:
Jeśli np. użyszkodnik nie istnieje, to jak można by było mu imię zmienić, czy przenieść? Cytat I tak jest ich sporo, a używanie wszędzie try { } catch { } jest co najmniej nie wygodne. To jest właśnie bolączka, że PHP zamiast pluć wyjątkami, to zwraca tylko false przy niepowodzeniach. W innych językach jest to bardziej ucywilizowana konstrukcja. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 15:44 |