[英]Catching ServiceManager Exceptions
当我使用服务管理器获取一个在初始化期间引发异常的对象时,我无法通过以下简单方法捕获该对象:
try {
$hybridAuth = $this->getServiceManager()->get('HybridAuth');
}
catch (Exception $e) {
var_dump('catched');
}
相反,Zend通过著名的“发生错误”页面捕获了异常
这向我展示了引发异常的“雪球”(因为服务无法初始化,而其他服务则依赖于此,依此类推)
如何捕获异常(然后放入一些代码逻辑)以防止Zend捕获异常?
我认为您的问题不在于如何捕获ServiceManager
异常。
您这样做的方式是错误的:
catch (Exception $e)
将捕获当前名称空间中的异常。 您需要捕获PHP全局异常。 你有同样的问题,因为这一个 。
通过此代码更改您的代码:
try {
$hybridAuth = $this->getServiceManager()->get('HybridAuth');
}
catch (\Exception $e) {
var_dump('catched');
}
或通过添加以下内容导入全局php异常:
use \Exception;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.