123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace App\Exceptions;
- use Exception;
- use Illuminate\Auth\Access\AuthorizationException;
- use Illuminate\Database\Eloquent\ModelNotFoundException;
- use Illuminate\Validation\ValidationException;
- use Laravel\Lumen\Exceptions\Handler as ExceptionHandler;
- use Symfony\Component\HttpKernel\Exception\HttpException;
- class Handler extends ExceptionHandler
- {
- /**
- * A list of the exception types that should not be reported.
- *
- * @var array
- */
- protected $dontReport = [
- AuthorizationException::class,
- HttpException::class,
- ModelNotFoundException::class,
- ValidationException::class,
- ];
- /**
- * Report or log an exception.
- *
- * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
- *
- * @param \Exception $exception
- * @return void
- */
- public function report(Exception $exception)
- {
- parent::report($exception);
- }
- /**
- * Render an exception into an HTTP response.
- *
- * @param \Illuminate\Http\Request $request
- * @param \Exception $exception
- * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
- */
- public function render($request, Exception $exception)
- {
- // 参数验证错误的异常,我们需要返回 400 的 http code 和一句错误信息
- if ($exception instanceof ValidationException) {
- return response()->json([ 'code'=>'4011', 'msg' => array_first(array_collapse($exception->errors()))]);
- }
- // 用户认证的异常,我们需要返回 401 的 http code 和错误信息
- if ($exception instanceof UnauthorizedHttpException) {
- return response()->json([ 'code'=>'4012', 'msg' => $exception->getMessage()]);
- }
- //token异常
- if($exception instanceof TokenBlacklistedException){
- return response()->json([ 'code'=>'4013', 'msg' => $exception->getMessage()]);
- }
- // return parent::render($request, $exception);
- return parent::render($request, $exception);
- }
- }
|