Laravel在开发环境中显示Whoops调试器

时间:2014-10-05 20:37:35

标签: php laravel exception-handling whoops

我需要在业务逻辑中使用try-catch块。因此,我可以使用更多的上下文来记录错误。

try {
    // business logic
} catch(Exception $e) {
    // Log message like 'Could not create user with email something@domain.com'
    $msgForUser = CustomErrorHandler::handleError($e, $data->email);

    // Display message like 'Your user was not created bla bla bla'
    return $msgForUser;
}

我意识到我可以在App::error的{​​{1}}中设置自定义错误处理,但这样就无法包含特定于该函数的变量和消息。

问题是现在我的try块在开发中遇到了错误。我还想在开发模式下获得Whoops异常调试器。这可能吗?

1 个答案:

答案 0 :(得分:1)

你对这一点的流程有点反对,Laravel似乎偏向于使用异常来报告实际错误(与使用像你一样的应用程序控制流的异常)。

Laravel中没有(我知道)可以让你这样做。我将此逻辑放在您的CustomErrorHandler::handleError方法

class CustomerErrorHandler
{
    //assuming `CustomerErrorHandler::handleError` is a static method
    //call.  If its a facade define an instance method in your service
    //class.
    static public function handleError($e)
    {
        if(...is environment where I want to see whoops...)
        {
            throw $e;
        }

        //if we're still here it's production
        //so do our logging and create a 
        //$msgForUser string

        //...

        return $msgForUser;
    }
}