swoole为什么不支持set_exception_handler?
swoole为什么不支持set_exception_handler?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
swoole为什么不支持set_exception_handler?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
运行方式完全不一样了啊……
传统的 PHP 异常是一直不断的向上抛,直到某一层被 catch 住,如果没有任何 catch,才会调用 set_exception_handler。
而 swoole 提供了单独的进程模型,在运行以后会接管系统控制权,回调函数相当与是最终的 PHP 出口和入口,异常根本就无法向最外层抛出,set_exception_handler 设置的回调当然不会被调用。
你可以简单的理解为 swoole 本身最外层有一个大 try-catch,异常在 swoole 内就被吞了。
自问自答一下吧,因为执行到了zend_bailout跳过了zend_try_exception_handler(),所以设置的set_exception_handler不会执行