gpt4 book ai didi

php - 为什么 set_exception_handler(func) 不能捕获异常?

转载 作者:行者123 更新时间:2023-12-01 23:31:33 25 4
gpt4 key购买 nike

在我的关闭函数中抛出异常,并且在 try/catch block 中捕获异常,例如:

<?php

set_exception_handler(function($e){
echo "exception handled"; // not echoed
});

register_shutdown_function(function(){
throw new Exception("test"); // this should be caught by the exception handler above, but it doesn't
});

Live run.

运行上面的代码给出:

Fatal error: Uncaught exception 'Exception' with message 'test'

但是PHP Manual claim :

set_exception_handler sets the default exception handler if an exception is not caught within a try/catch block. Execution will stop after the exception_handler is called.

为什么exception_handler没有捕获抛出的异常?

最佳答案

因为超出了范围...

http://www.php.net/manual/en/function.register-shutdown-function.php

Registers a callback to be executed after script execution finishes or exit() is called.

当脚本执行完成并且实际上正在关闭时,它必须剥离您的处理程序。

关于php - 为什么 set_exception_handler(func) 不能捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17751524/

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