gpt4 book ai didi

php - 如何捕获需要错误 + error_handlers

转载 作者:行者123 更新时间:2023-12-03 08:30:14 25 4
gpt4 key购买 nike

我正在尝试使用 set_error_handler捕获函数require错误。
而我的自定义 error_handler正在使用,上下文似乎完全关闭,尽管跟踪是正确的。

<?php
function error_handler($errno, $errstr, $errfile, $errline){
throw new Exception($errstr);
}

set_error_handler('error_handler');


try{
trigger_error("somethign",E_USER_NOTICE);
}catch(Exception $e){
echo "I got caught";
}


try{
require "something/that/does/not/exists.php";
}catch(Exception $e){
echo "I got caught";
}

可以看出,当我触发第一个错误时,它触发了 error_handler这反过来又引发了异常。在第一次 try catch 中被捕获。

第二次,我尝试包含一个不存在的文件,再次是 error_handler已使用,但未捕获异常。
这里发生了什么?

我正在使用 php 5.5.*
在 CLI 模式下测试。

最佳答案

只需阅读文档:

require is identical to include except upon failure it will also produce a fatal E_COMPILE_ERROR level error. In other words, it will halt the script



( http://php.net/manual/en/function.require.php)

这意味着,遇到此错误时脚本执行将中止。将使用您的自定义错误处理程序,但 throw将被忽略,因为这假定了此时不允许的进一步执行。

关于php - 如何捕获需要错误 + error_handlers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27509952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com