是否有可能在包含文件中捕获致命错误php?

y2k*_*y2k 0 php error-handling include

这就是我想要做的事情,如果文件中有致命错误我不希望脚本停止执行

try { 
require "somethin.php"
} catch(...) {}
Run Code Online (Sandbox Code Playgroud)

会有一些方法file_get_contents()并且eval()可以解决这个问题

Ora*_*ill 7

注意 - 这不回答海报的问题.丑陋的现实是你无法从致命的错误中恢复,但这适用于其他错误

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)

有了这个,你可以在你认为合适的情况下捕捉和处理错误

  • @PeeHaa埽点击链接,阅读文档.这涉及致命错误 (2认同)

Pee*_*Haa 6

没有真正没有理智的方式来捕获(无法捕获;-))PHP中的致命错误.所以也没有理智的方法可以从中恢复.这是有道理的,因为这是一个致命的错误.

基本上PHP所说的是:这是你不能/不应该尝试从中恢复的东西.

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

现在如果您想在发生致命错误时做某事(例如发送电子邮件给您通知您),您可能需要查看:https://stackoverflow.com/a/2146171/508666