|
|
<?php
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;use Throwable;use Illuminate\Validation\ValidationException;
class Handler extends ExceptionHandler{ /** * A list of the exception types that are not reported. * * @var array */ protected $dontReport = [ //
];
/** * A list of the inputs that are never flashed for validation exceptions. * * @var array */ protected $dontFlash = [ 'current_password', 'password', 'password_confirmation', ];
/** * Register the exception handling callbacks for the application. * * @return void */ public function register() { $this->reportable(function (Throwable $e) { //
}); }
/** * 报告异常 * @return bool|void */ public function report(Throwable $e): bool { // 判断异常是否需要自定义报告...
return false; }
public function render($request, Throwable $e) { // 表单校验
if ($e instanceof ValidationException) { $errors = $e->errors(); while (is_array($errors)) { $errors = current($errors); } return response()->json([ 'code' => -1, 'msg' => $errors, 'data' => [], 'status' => 500, ]); } // 404
if ($e instanceof NotFoundHttpException) { return response()->json([ 'code' => -1, 'msg' => '404 Not Found', 'data' => [], 'status' => 500, ]); } //TypeError && ParseError && Exception
/*if ($e instanceof \TypeError || $e instanceof \ParseError || $e instanceof \Exception) { return response()->json([ 'code' => -1, 'msg' => $e->getMessage(), 'data' => [], 'status' => 500, 'file' => $e->getFile(), 'line' => $e->getLine(), ]); } //Exception
if ($e instanceof \Error) { return response()->json([ 'code' => -1, 'msg' => $e->getMessage(), 'data' => [], 'status' => 500, 'file' => $e->getFile(), 'line' => $e->getLine(), ]); }*/ return parent::render($request, $e); }}
|