set_exception_handler无法使用PHP CLI?

时间:2014-04-24 11:22:02

标签: php exception exception-handling command-line-interface

我错过了php doc中的内容吗?

我在我的set_exception_handler上设置了一个index.php来捕获异常(来自librairies),并避免因未捕获的异常而导致PHP致命错误。

当我用Apache运行我的脚本时我没有问题(该功能正确地捕获了异常)。 但是当我尝试使用PHP cli(php -r 'include "index.php";')时,我得到了PHP致命错误。

有什么想法吗?

- index.php

set_exception_handler('exception_handler');
throw new Exception("Test exception");

function exception_handler($e) {
    echo '-- excemption handler --';
    $toLog = '['.date('d/m/Y H:i:s').'] '.$e->getMessage()."\n".$e->getTraceAsString();
    var_dump($toLog);
}

1 个答案:

答案 0 :(得分:0)

要运行代码,您应该使用

  

php index.php

这不会显示致命错误。

运行时

  

php -r'include“index.php”;'

它实际上以php脚本的形式执行语句。而这个脚本本身不会处理自己的致命错误。