*/ protected $dontFlash = [ 'current_password', 'password', 'password_confirmation', ]; /** * Register the exception handling callbacks for the application. */ public function register(): void { // $this->renderable(function (HttpException $e, $request) { // if ($request->is('api/*')) { // $message = $e->getMessage(); // if ($message === '') { // $message = HttpResponseCodes::$statusTexts[$e->getStatusCode()]; // } // return response()->json([ // 'message' => $message // ], $e->getStatusCode()); // } // }); $this->renderable(function (NotFoundHttpException $e, $request) { if ($request->is('api/*') === true) { return response()->json([ 'message' => 'Resource not found' ], 404); } }); $this->renderable(function (PDOException $e, $request) { if ($request->is('api/*') === true) { return response()->json([ 'message' => 'The server is currently unavailable' ], 503); } }); $this->renderable( function (Throwable $exception, $request) { if ($exception instanceof \Illuminate\Session\TokenMismatchException) { return redirect() ->back() ->withInput($request->except('password')) ->with('errorMessage', 'This form has expired due to inactivity. Please try again.'); } } ); $this->reportable(function (Throwable $e) { if ($this->shouldReport($e) === true) { $this->sendEmail($e); } }); } public function sendEmail(Throwable $exception) { try { $e = FlattenException::create($exception); $handler = new HtmlErrorRenderer(true); $css = $handler->getStylesheet(); $content = $handler->getBody($e); Mail::send('emails.exception', compact('css', 'content'), function ($message) { $message ->to('youremailhere@gmail.com') ->subject('Exception Generated') ; }); } catch (Throwable $ex) { Log::error($ex); } } }