swoole为什么不支持set_exception_handler?

swoole为什么不支持set_exception_handler?

阅读 2.2k
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不会执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏