繁体   English   中英

捕获ServiceManager异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM