重写laravel 异常抛出处理

2018-06-22 05:13:31来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

所有异常错误都由类App\Exceptions\Handler处理,该类包含两个方法:report和render。 
这里我们只看render方法,该方法会将异常渲染到HTTP响应中,就是说上面的错误信息就是通过这个方法展示的。

public function render($request, Exception $e)
{

    /* 错误页面 */
    if ($e instanceof HttpException) {
            $code = $e->getStatusCode();

            if (view()->exists('errors.' . $code)) {
                $message  = $e->getMessage();
                return response()->view('errors.' . $e->getStatusCode(), ['message'=>$message], $e->getStatusCode());
            }
     }
     return parent::render($request, $e);
   }

  或者如下处理

protected $dontReport = [
    //     AuthorizationException::class,
    //     HttpException::class,
    //     ModelNotFoundException::class,
    //     ValidationException::class,
    ];
public function render($request, Exception $e)
    {
        if (getenv('APP_DEBUG')) {
            return parent::render($request, $e);
        }else{
            switch ($e){
               case ($e instanceof HttpException):

                   
                   //自定义处理异常,此处我们返回一个404页面
                   return view('errors.404');
                   break;

               default:
               
                   //返回laravel默认的错误页面
                   return parent::render($request, $e);

           }
        }
    }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:TP5.0 excel 导入导出

下一篇:流程管理