我遇到了一个问题,即抛出异常但未在 Module.php 中捕获。引发异常的代码包含在 try/catch 中。没有什么特别的事情发生,所以我假设 ZF2 有一个怪癖和/或不允许在此处捕获异常的原因。
代码如下(根据需要简化):
class Module
{
public function onBootstrap(MvcEvent $e)
{
// Get service manager, etc.
// Set up some environment stuff
try {
// exception is thrown
}
catch (\Exception $e) {
echo $e->get_message();
exit;
}
}
}
为什么异常没有被捕获?
在理想的世界中,有一种方法可以在这里捕捉到这个异常。但是,如果这是不可能的,或者太复杂以至于不值得付出努力,那么在页面加载过程中尽早获取此数据(无论来源)的替代过程将不胜感激。
元
我知道 Module.php 中的代码应该是轻量级的。但是我们必须在执行任何操作之前立即获取一些数据,因为它将包含对要执行的操作至关重要的数据。此数据在第一次访问后被缓存,因此每隔一个页面加载将避免这种开销。
我也用谷歌搜索过这个,但显然没有其他人经历过这个,询问过它,或者记录它。