是否有可能在include文件上捕获致命错误PHP ?


is it possible to catch fatal error php on include file?

如果文件中有致命错误我不希望脚本停止执行

try { 
require "somethin.php"
} catch(...) {}

file_get_contents()eval()的某个方法是否会绕过

注意-这并没有回答海报上的问题。丑陋的现实是,您无法从致命错误中恢复,但这对于其他错误

有效。默认情况下,

require不会抛出异常,而是触发错误。

要让php抛出异常,你必须注册一个错误异常处理程序。

你可以在这里找到一个例子

但是基本上它

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

有了这个功能,你就可以捕获并处理你认为合适的错误

不,在PHP中确实没有相同的方法来捕获(不可捕获的;-))致命错误。因此,也没有统一的恢复方法。这是有意义的,因为这是一个致命错误。

基本上PHP说的是:这是你不能/不应该尝试恢复的事情。

请注意@Orangepill的解决方案也不适用于致命错误:http://codepad.org/4nzzYQSG

现在,如果你想做一些事情,当一个致命的错误发生(例如发送电子邮件给你,以通知你这一点),你可能要看看:https://stackoverflow.com/a/2146171/508666