2010-08-14 25 views

Respuesta

11

Deberá reemplazar el controlador de excepciones no detectadas. Ejemplo:

function exception_handler($exception) { 
    $i = 0; 
    foreach ($exception->getTrace() as $frame) { 
     echo sprintf("#%d %s(%d): %s(%s)\n", 
      $i++, $frame["file"], $frame["line"], 
      $frame["function"], 
      implode(", ", array_map(
       function ($e) { return var_export($e, true); }, $frame["args"]))); 
    } 
} 

set_exception_handler('exception_handler'); 

Ahora se obtendrá algo como:

 
#0 /home/glopes/a.php(21): a('loooooooooooooooooooooooooooooooooong argument') 
#1 /home/glopes/a.php(24): b() 
+1

Tenga en cuenta que $ frame ['file'] no siempre se define, por lo que deberá verificarlo primero. El volcador de pila de PHP devuelve '[función interna]' en ese caso. Además, es posible que desee ver si $ frame ['class'] está definido y volcarlo también en caso de que la función sea una función miembro. – DaveBurns

Cuestiones relacionadas