如果文件中出现致命错误我不希望脚本停止执行,这就是我想要做的事情
try {
require "somethin.php"
} catch(...) {}
file_get_contents()
和eval()
的某些方法是否适合
答案 0 :(得分:7)
注意 - 这不回答海报的问题。丑陋的现实是你无法从致命错误中恢复,但这适用于其他错误
require不会抛出异常,而是默认触发错误。
要让php抛出异常,你必须注册一个错误异常处理程序。
您可以找到示例here
但基本上它
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");
有了这个,你可以抓住并处理你认为合适的错误
答案 1 :(得分:6)
没有真正没有理智的方式来捕获(不可捕获;-))PHP中的致命错误。所以也没有理智的方法可以从中恢复。这是有道理的,因为这是一个致命的错误。
基本上PHP所说的是:这是你不能/不应该尝试恢复的东西。
请注意@Orangepill's solution也不会因致命错误而工作:http://codepad.org/4nzzYQSG
现在,如果您想在发生致命错误时做某事(例如发送电子邮件给您通知您),您可能需要查看:https://stackoverflow.com/a/2146171/508666