【问题标题】:Implementation of Exception Handling in Laravel 5.2Laravel 5.2 中异常处理的实现
【发布时间】:2016-10-31 15:54:12
【问题描述】:

我正在尝试在我的应用程序中实现异常处理。对于这个 Laravel 框架有自己的机制来使用报告和渲染方法来处理异常。但是要实现异常,我需要跟踪引发异常的源,例如特定页面、路线等。为此,我需要将 url 传递给报告和渲染方法,但无法这样做。为了在下面的报告和渲染功能中实现这一点需要做什么。

public function report(Exception $e)
{
    parent::report($e);
}


public function render($request, Exception $e)
{
    /*  Token mismatch Exception handler  start */
    if ($e instanceof \Illuminate\Session\TokenMismatchException) {
        return response()->view('errors.sessionExpire', [], 500);
      }
    /* Token mismatch Exception handler  start */
    return parent::render($request, $e);
}

【问题讨论】:

    标签: php laravel laravel-5.2


    【解决方案1】:

    从您自己的示例中可以看出,您在参数列表中有一个 Request 实例。 Request 包含所有特定于请求的详细信息,例如当前路由、URL 等。

    $request->url(); // Current request URL
    $request->fullUrl(); // With query parameters
    $request->route(); // Get the route closure for this request path
    

    您还可以创建自己的异常类来接受任意数量的参数!

    还有已经提到的不太舒服的方法——你可以通过异常跟踪。

    【讨论】:

      【解决方案2】:

      你需要使用Exception::getTrace

      var_dump($e->getTrace()); 
      

      上面的行会为您提供有关异常的所有详细信息。

      public function report(Exception $e){
          echo '<pre>';  // add this line 
          print_r($e->getTrace()); // add this line 
          parent::report($e);
      }
      

      【讨论】:

        猜你喜欢
        • 2016-12-04
        • 1970-01-01
        • 2011-06-06
        • 2018-10-02
        • 2013-09-11
        • 1970-01-01
        • 2014-04-22
        • 1970-01-01
        相关资源
        最近更新 更多