ActionController中的zend framework 2 set_exception_handler

时间:2012-10-29 13:12:42

标签: exception exception-handling zend-framework2 zend-controller

我尝试使用“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异常。 请问有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我必须纠正我以前的帖子。 这似乎是ZF的一个已知错误。看看这个:

http://grokbase.com/t/php/php-bugs/128zn2emcx/php-bug-bug-62985-new-set-exception-handler-doesnt-work-from-command-line