Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak duży blok try catch
hugo_amv
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 22.06.2005
Skąd: Lublin

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


Na pewnej mądrej stronie ( nie pamiętam jakiej, może na java.sun.com, ale na pewno źródło było dość pewne) spotkałem się z opinią, że nie powino się umieszczać duży bloków kodu pomiędzy try catch, a jedynie krótkie fragmetny kodu i odrazu przechwytywać błędy. Ja wolę wszystkie wyjątki przechwytywać w silniku strony, a dopiero potem zajmować się ich obsługą.

  1. <?php
  2. try{
  3. /**
  4.  * Tutaj różne moduły, uruchamiaja różne klasy,
  5.  * które zwracają różne wyjątki :)
  6.  */
  7. }catch (SQLException $e){
  8. // Obługa wyjątków związanych z bazą danych
  9. echo $e;
  10. }catch (FileException $e){
  11. // Inny typ wyjątków
  12. echo $e;
  13. }catch (Exception $e){
  14. // Pozostałe rodzaje błędów
  15. }
  16. ?>


Jednak na tamtej stronie było wyraźnie napisane, że jest to złą praktyką programistyczną. Jak to w końcu jest?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hugo_amv
post
Post #2





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 22.06.2005
Skąd: Lublin

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


Cytat(SongoQ @ 3.06.2006, 13:28 ) *
No pomysl sobie czy jesli bedziesz mial powiedzmy tysiac lini kodu i rzuci CI wyjatek czy aby wszystko dobrze potrafisz osbluzyc i bedziesz wiedzial w ktorym miejscu to wystapilo. Zaleceniem jest stosowanie jak najmniejszej ilosci kodu w bloku try

Tworze klasy dziedziczące po Exception i jestem w stanie każdy wyjątek odpowiednio obsłużyć. Jak padła baza danych to wyświetla się 'awaria bazy danych, przepraszamy', jak użytkownik nie ma praw dostępu do pliku to inny komunikat.

Cytat(zulus @ 3.06.2006, 13:47 ) *
Wyobraź sobie że moduł napiszę Ci ktoś inny. Z kąd będziesz wiedział czy nie stworzy nowego wyjątku, i jak go obsłużyć.

Jak ktoś inny stworzy moduł to będzię musiał ze mną skontaktować jakie może zwracać wyjątki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A tak poważnie to tu masz racje, mała niedogodność.
Cytat(zulus @ 3.06.2006, 13:47 ) *
Po za tym im mniejsze bloki try, tym mniej wyjątków umieścisz jednocześnie, więc mniej siedzi w pamięci (oszczędność zasobów (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )

Wydaje mi się, że tylko jeden wyjątek jest zgłaszany ( umieszczany w pamięci), a nie wszystie pokolei, a program odrazu przechodzi do pierwszego napotkanego boku catch.

Ten post edytował hugo_amv 3.06.2006, 15:06:47
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 - 12:47