当我使用服务管理器获取在初始化期间抛出异常的对象时,我无法用一个简单的方法来捕获这个:
try {
$hybridAuth = $this->getServiceManager()->get('HybridAuth');
}
catch (Exception $e) {
var_dump('catched');
}
相反,Zend会使用着名的“发生错误”页面
来捕获异常
这显示了抛出异常的“雪球”(因为服务无法初始化而其他服务依赖于等)
如何捕获异常(然后放入一些代码逻辑)以阻止Zend捕获它?
答案 0 :(得分:0)
我认为你的问题不在于如何捕获ServiceManager
例外情况。
你这样做的方式是错误的:
catch (Exception $e)
将从当前命名空间中捕获异常。你需要的是捕获PHP全局异常。 您遇到与此one相同的问题。
通过以下方式更改您的代码:
try {
$hybridAuth = $this->getServiceManager()->get('HybridAuth');
}
catch (\Exception $e) {
var_dump('catched');
}
或者通过添加以下内容导入全局php异常:
use \Exception;