Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> try, catch w srodku klasy
Dex1987
post
Post #1





Grupa: Zarejestrowani
Postów: 246
Pomógł: 0
Dołączył: 28.09.2004

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


Witam, mozna zrobic tak obsluge bledow zeby funkcja __destruct wylapywala bledy i je wyswietlala? Chodzi o to aby try i catch byly w srodku klasy a nie przy wywolywaniu.

Pozdrawiam dex.

Ten post edytował Dex1987 13.01.2006, 15:45:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


W destruktorze możesz przechwycić tylko to co wyrzuciło wyjątek w destruktorze.
czy to bezpośrednio:
  1. <?php
  2.  
  3. public function __destruct()
  4. {
  5. try
  6. {
  7. throw new Exception
  8. }
  9. catch( Exception $objException )
  10. {}
  11. }
  12.  
  13. ?>

... czy to "pośrednio":
  1. <?php
  2.  
  3. public function __destruct()
  4. {
  5. try
  6. {
  7. // wewnątrz someFunction() wyrzucany jest wyjątek,
  8. // ale nie jest przechwytywany, więc obowiązek przechwycenia przechodzi "wyżej"
  9. someFunction();
  10. }
  11. catch( Exception $objException )
  12. {}
  13. }
  14.  
  15. ?>



Nie ma takiej sytuacji (bo to chyba o tym mówisz?):
  1. <?php
  2.  
  3. $objObject = new Class();
  4.  
  5. $objObject->someFunction(); // funkcja wyrzuca wyjątek;
  6.  
  7. unset( $objObject ); // tutaj destruktor przechwytuje wyjątek wyrzucony przez someFunction()
  8.  
  9. ?>


Tak się po prostu nie da.
Mało tego, to jest niewykonalne w żadnym języku programowania.

Poczytaj: Rozdział 20. Exceptions a dowiesz się jak? i gdzie? łapać wyjątki.
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: 10.10.2025 - 15:38