Laravel5.4异常处理

异常处理

所有异常都由 App\Exceptions\Handler 类处理。 这个类包含两个方法:report 和 render 。 我们将详细研究这些方法。 report 方法用于记录异常或将其发送到外部服务,如 Bugsnag 或 Sentry 。默认情况下,report 方法只是将异常传递给记录异常的基类。然而,你可以自由选择任何方式进行处理。 例如,如果您需要以不同的方式报告不同类型的异常,您可以使用 PHP instanceof 比较运算符:

public function render($request, Exception $exception)
{
    if ($exception instanceof TokenMismatchException) {
        return response()->json([
            'status'=>0,
            'msg'=>'TokenMismatchException error',
        ]);
        //return response()->view('errors.500',['error'=>'csrf token error']);
    }

    if ($exception instanceof CustomException) {
        return response()->json([
            'status'=>0,
            'msg'=>'CustomException error',
        ]);
    }

    if ($exception instanceof NotFoundHttpException) {
        return response()->view('errors.404');
    }

    return parent::render($request, $exception);
}

但是上述代码实际跑起来并没有像上述代码的那样执行,那是因为instanceof 后面的参数路径不对,所有我们需要在文件中引入完整路径 

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\HttpKernel\Exception\CustomException;
use Illuminate\Session\TokenMismatchException; 

上一篇: 使用php手动创建sqs

下一篇: Git版本控制

分享

版权属于:破冰者博客

文章链接:https://ice-breaker.cn/post/16

转载时必须以链接形式注明原始出处及本声明。

表情