避免特定的PHP致命错误:未捕获的异常以允许脚本继续运行

时间:2010-01-30 02:25:32

标签: php exception-handling

我想这样做,即使有一个致命的错误,我的脚本也可以继续运行。现在我可以得到这个致命的错误:PHP致命错误:未捕获的异常'MongoConnectionException',消息等等等等。

我们如何捕获此特定错误,记录它,但允许脚本继续运行?有人对此有所了解吗?

3 个答案:

答案 0 :(得分:2)

// run some code

try{
   // run code that throws the exception
}
catch(MongoConnectionException $e)
{
    error_log($e->getMessage());
    // or other logging capabilities
}

// keep running script.

答案 1 :(得分:2)

答案 2 :(得分:1)

更一般地说,在这个问题上,需要注意一点,因为标准的PHP致命错误不会自动转换为异常,从the manual稍微修改后应该采取某种方式来缓解这种情况。

function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");

try {
    /* Trigger exception */
    strpos();
}
catch (ErrorException $e) {
    // deal with the error
}