我尝试使用“set_exception_handler”函数捕获我的ActionController异常。
在任何视图中,例如index.phtml这段代码工作正常,视图显示Helloooo。
<?php
namespace App;
echo $this->doctype();
class Fun {
static function exception_handler(\Exception $ex){
echo "Heloooo";
}
function method(){
set_exception_handler('App\Fun::exception_handler');
throw new \Exception('One Exception');
}
}
$f = new Fun();
$f->method();
我不明白,因为ActionController.php,set_exception_handler()内的相同代码没有捕获异常。 在这种情况下,视图显示带有“One Exception”消息的zend异常模板。
顺便说一句,异常堆栈没有显示任何警告消息,那么我假设set_exception_handler()参数很好。
namespace App\Controller;
use Zend\....... //All namespaces used
class Fun {
static function exception_handler(\Exception $ex){
echo "Helloooo";
}
function method(){
set_exception_handler('App\Controller\Fun::exception_handler');
throw new \Exception('One Exception');
}
}
$f = new Fun();
$f->method();
class MainController extends AbstractActionController {
//The Controller Code (in this test it doesn't execute).
}
我认为Zend Framework使用任何技术来捕获其他级别的Controller异常。 请问有人有任何想法吗?
答案 0 :(得分:0)
我必须纠正我以前的帖子。 这似乎是ZF的一个已知错误。看看这个: