ErrorPresenter – vlastní ošetření chyby
- Honza Kuchař
- Člen | 1662
Ahoj,
mám takový problém. Když chci zjistit více informací o chybě předanou
errorPresentru, narazím na problém, všechny proměné jsou protected. Nic
z nich nepřečtu. Tzn. Debug::dump(); vrátí něco jako toto:
object(BadRequestException) (8) {
"defaultCode" protected => int(404)
"message" protected => string(180) "Cannot load presenter 'Asdasd', clas... "
"string" private => string(0) ""
..
}
}
Ale když si zavolám echo $exception->message → tak nastane chyba. Je nějaké řešení, jak dostat tyto proměné vypreparovat tak, aby šly přečíst? :-)
Zatím na základní identifikaci chyby používám:
if ($exception instanceof BadRequestException)
// 404
else
// 500
To funguje perfektně, ale nedozvím je žádné podrobnosti. :-( Víte někdo jak na to? Díky
Editoval honzakuchar (17. 3. 2009 15:03)
- Jod
- Člen | 701
$exception->getMessage() ?
Takto vyzerá konštrukcia základnej Exception v php:
<?php
class Exception
{
protected $message = 'Unknown exception'; // exception message
protected $code = 0; // user defined exception code
protected $file; // source filename of exception
protected $line; // source line of exception
function __construct($message = null, $code = 0);
final function getMessage(); // message of exception
final function getCode(); // code of exception
final function getFile(); // source filename
final function getLine(); // source line
final function getTrace(); // an array of the backtrace()
final function getTraceAsString(); // formated string of trace
/* Overrideable */
function __toString(); // formated string for display
}
?>
Exceptions v nete rozšírujú túto triedu o ďalšie vlastnosti, prípadne sa len inak volajú kôli odchytávaniu. Tie si môžeš pozrieť priamo v nette.
A tu si môžeš naštudovať ako sa pracuje s Exceptions v PHP
Editoval Jod (17. 3. 2009 15:11)