我希望能够在我的 php 类中抛出一个致命的、无法捕获的错误,因为我的类的用户因为我不想要的东西而滥用它。我不希望他/她能够通过 catch 子句恢复。我知道trigger_error
,但我只能让它发出警告或通知。
问问题
28362 次
4 回答
13
注意:如果您使用自定义错误处理程序(请参阅set_error_handler)
E_USER_ERROR
将不会停止/退出/死亡,除非错误处理程序返回 false
简而言之:您的自定义错误处理程序有效地确定是否E_USER_ERROR
被视为致命错误
于 2014-12-09T17:48:45.823 回答
6
debug_print_backtrace();
trigger_error("As much information as you can provide, please", E_USER_ERROR);
exit();
exit() 完全终止 PHP 脚本。您可以向用户或开发人员提供有关错误的信息越多越好。错误代码已过时。
编辑:使用 E_USER_ERROR 无论如何都应该终止脚本,因此将 debug_print_backtrace() 移到 trigger_error() 之前。
于 2014-11-05T08:51:25.287 回答
2
如果您使用的是 PHP 7 或更高版本,Error类也可以:
$flag = false;
try {
if ($flag == false) {
throw new Error('An error occured');
}
} catch (Error $e) {
echo $e->getMessage();
}
如果你把它放在throw new Error('An error occured');
外面Try Catch
,你会得到一个致命错误。
于 2018-05-23T11:23:20.590 回答