使用whoops作为tp6的自定义异常

发布时间 2023-04-18 09:48:47作者: jqynr

安装 composer require filp/whoops

在 app/ExceptionHandle.php中的render

  public function render($request, Throwable $e): Response
  {
    // 添加自定义异常处理机制
    if (ENV('APP_DEBUG')) {
      // 如果是HttpResponseException异常则原样输出
      // JUMP插件里的success,error和result方法均返回的是HttpResponseException异常
      if ($e instanceof HttpResponseException) {
        return $e->getResponse();
      }

      // Whoops 接管请求异常
      $whoops = new \Whoops\Run;
      $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
      return Response::create(
        $whoops->handleException($e),
        'html',
        500
      );
    }

    // 其他错误交给系统处理
    return parent::render($request, $e);
  }