ErrorPresenter – vlastní ošetření chyby

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honza Kuchař
Člen | 1662
+
0
-

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
+
0
-

$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)

Honza Kuchař
Člen | 1662
+
0
-

Díky moc. Příště budu pečlivěji hledat. :)