Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błąd przy wywoływaniu new Error(...), Error extends Exception
starach
post 23.02.2007, 10:20:03
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Witam.
Postanowiłem przepisać trochę własną obsługę błędów.
Niestety mam problem z jej wywołaniem.
Napisałem funkcję na którą wskazuje set_error_handler()
Ma ona taką postać:
  1. <?php
  2. function error_handler($code, $message, $file, $line) 
  3. {
  4. $error = new Error($message, $code, '', false);
  5. $error->set_info('file', $file);
  6. $error->set_info('line', $line);
  7. $error->parse();
  8. }
  9. ?>

Nie wiedzieć czemu ten kawałek generuję mi błąd, a dokładnie moment przypisania do zmiennej $error
obiektu klasy która rozszerza Exceptions ( $error = new Error ... )
debug_backtrace() zwraca mi coś takiego
[file] -> D:\WWW\orglee\class\error\error_handler.php
[line] -> 4
[function] -> __construct
[class] -> Error
[object] ->

Linia 4 to linia przypisania obiektu do zmiennej $error.
Konstruktor klasy Error wygląda natomiast tak:
  1. <?php
  2. public function __construct($message, $code=0, $desc, $auto_parse_error=true) 
  3. {  
  4. $trace = debug_backtrace();
  5. $this->print_bacttrace($trace);
  6. }
  7. ?>

Macie może jakiś pomysł co ja skopałem tym razem ?

edit>
Oprócz tego że źle nazwałem metodę drukującą mi debug_backtrace(),
ale to chyba nie jest przyczyną tego problemu tym bardziej że metoda tak nazwa istnieje w klasie.

edit>>
dobra chyba już rozumiem.
On nie zgłasza błędu w linii 4 tylko zapisuje do protected::line i protected::file miejsce wywołania klasy Error.
Mam rację czy tylko mi się wydaje że mam rację ?

Ten post edytował orglee 23.02.2007, 10:30:04
Go to the top of the page
+Quote Post
DeyV
post 23.02.2007, 11:43:31
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




niestety - masz rację.

Powstały wyjątek zapisuje sobie ścieżkę od momentu powstania swojego powstania, stąd też w takim rozwiązaniu wszystkie "błędy" będą wskazywać na tą funkcję.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:40