如何在 PHP 中实现异常链
PHP异常的构造函数有第三个参数,文档说:
$previous: The previous exception used for the exception chaining.
但我可以'让它发挥作用。我的代码如下所示:
try
{
throw new Exception('Exception 1', 1001);
}
catch (Exception $ex)
{
throw new Exception('Exception 2', 1002, $ex);
}
我期望抛出异常 2,并且我期望它附加异常 1。但我得到的只是:
Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) in ...
我做错了什么?
Constructor for PHP's exception has third parameter, documentation says:
$previous: The previous exception used for the exception chaining.
But I can't make it work. My code looks like this:
try
{
throw new Exception('Exception 1', 1001);
}
catch (Exception $ex)
{
throw new Exception('Exception 2', 1002, $ex);
}
I expect Exception 2 to be thrown and I expect that it will have Exception 1 attached. But all I get is:
Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) in ...
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
第三个参数需要版本5.3.0。
The third parameter requires version 5.3.0.
在 5.3 之前,您只能创建自己的自定义异常类。还建议这样做,我的意思是,如果我
catch (Exception $e)
那么我的代码必须处理所有异常,而不仅仅是我想要的异常,代码会更好地解释它。Before 5.3 you can just create your own custom exception class. It is also recommended to do this, I mean if I
catch (Exception $e)
then my code must handle all exceptions rather then just the one I'm wanting, code explains it better.我得到:
你使用 php > 5.3?
I get:
You using php > 5.3 ?