y2k*_*y2k 0 php error-handling include
这就是我想要做的事情,如果文件中有致命错误我不希望脚本停止执行
try {
require "somethin.php"
} catch(...) {}
Run Code Online (Sandbox Code Playgroud)
会有一些方法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");
Run Code Online (Sandbox Code Playgroud)
有了这个,你可以在你认为合适的情况下捕捉和处理错误
没有真正没有理智的方式来捕获(无法捕获;-))PHP中的致命错误.所以也没有理智的方法可以从中恢复.这是有道理的,因为这是一个致命的错误.
基本上PHP所说的是:这是你不能/不应该尝试从中恢复的东西.
请注意,@ Orangepill的解决方案也不适用于致命错误:http://codepad.org/4nzzYQSG
现在如果您想在发生致命错误时做某事(例如发送电子邮件给您通知您),您可能需要查看:https://stackoverflow.com/a/2146171/508666