• 重写laravel 异常抛出处理


    所有异常错误都由类AppExceptionsHandler处理,该类包含两个方法: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);
    
               }
            }
        }
  • 相关阅读:
    python D5
    python D4
    python D3
    python D2
    python D1
    day12——闭包,装饰器,迭代器
    day11——考试python2和python3的区别
    day10——动态参数,名称空间,global,nonlocal
    day9——函数初识
    day8——文件操作
  • 原文地址:https://www.cnblogs.com/blog-dyn/p/6605813.html
Copyright © 2020-2023  润新知