<?php namespace App\Exceptions; use App\Utils\Response; use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Support\Facades\Log; use Illuminate\Validation\ValidationException; use Laravel\Lumen\Exceptions\Handler as ExceptionHandler; use Symfony\Component\HttpKernel\Exception\HttpException; use Throwable; 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 \Throwable $exception * @return void * * @throws \Exception */ public function report(Throwable $exception) { parent::report($exception); } /** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Throwable $e * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse * * @throws \Throwable */ public function render($request, Throwable $e) { // Log::info('MyInfo:' . $e->getMessage()); // Log::error('MyError:' . $e->getTraceAsString()); // //验证器异常 // if ($e instanceof ValidateException) { // return response()->json([ // 'status' => $e->getCode(), // 'msg' => $e->getMessage() // ])->setEncodingOptions(JSON_UNESCAPED_UNICODE); // } // // $code = 0 === $e->getCode() ? Response::SERVER_ERROR : $e->getCode(); // //其它异常 // return response()->json([ // 'status' => $code, // 'msg' => Response::$errMsg[$code] . ':' . $e->getMessage() // ])->setEncodingOptions(JSON_UNESCAPED_UNICODE); return parent::render($request, $e); } }