错误500页 - 如何获取最后一个异常?

时间:2014-03-19 10:03:44

标签: php exception-handling error-handling symfony1 symfony-1.4

如果抛出异常,Symfony 1.4默认显示“糟糕!发生错误”页面。我定义了一个自己的页面(http://symfony-check.org/permalink/customize-the-oops-an-error-occurred-page),如果发生这种情况,我想通过邮件通知我。 那么有没有机会获得抛出的异常?像error_get_last()?

1 个答案:

答案 0 :(得分:1)

感谢@waldek_c的建议!

最后我用过滤器解决了问题,并在转发到errorpage之前捕获了Exception。 像这样:http://blog.felixdv.com/2008/01/28/exception-catcher-filter-for-symfony/

这是我的过滤器:

class errorHandlingFilter extends sfFilter
{
public function execute($filterChain)
{
    try
    {
        $filterChain->execute();
    }
    catch(Exception $e)
    {
        if($e instanceof sfStopException || $e instanceof sfError404Exception) // common symfony exceptions that are allowed
        {
            throw $e;
        }
        else
        {
            // do errorhandling here
            throw $e;
        }
    }
}
}