src/Handlers/ExceptionHandler.php
private function handleForBrowser(Exception $e)
    {
//        $request = request();
//        if ($e instanceof ModelNotFoundException) {
//            $e = new NotFoundHttpException($e->getMessage(), $e);
//        }
//        elseif ($e instanceof AuthorizationException) {
//            $e = new HttpException(403, $e->getMessage());
//        }
//
//        if ($e instanceof HttpResponseException) {
//            return $e->getResponse();
//        }
//        if ($e instanceof AuthenticationException) {
//            header('Location: ' . url('auth/login'));
//            exit;
//        }
//        else if ($e instanceof ValidationException) {
//            return $this->convertValidationExceptionToResponse($e, $request);
//        }
//        else if ($request->isAjax() || $request->wantsJson()) {
//            /** @var HttpException $e */
//            return response()->json($e->getMessage(), $this->isHttpException($e) ? $e->getStatusCode() : 400);
//        }

        $data = $this->convertException($e);

        // set error title and subtitle

        if ($e instanceof HttpException) {
            // set the HTTP Response Status Text as error title
            $data['title'] = http_status_text($data['status']);

            // set the Exception class and the HTTP Response Status Code as subtitle
            $data['subtitle'] = get_class($e) . ', Status Code ' . $data['status'];
        }
        else if ($e instanceof QueryException) {
            // set title
            $data['title'] = 'SQL Error';

            // set the Exception class and error codes as subtitle
            $data['subtitle'] = get_class($e) . ' (Exception code: ' . $data['code'] . ')';
            if ($data['ansiCode'] !== null) {
                $data['subtitle'] .= ', ANSI SQLSTATE Error Code: ' . $data['ansiCode'];
            }
            if ($data['driverCode'] !== null) {
                $data['subtitle'] .= ', Driver-specific Error Code: ' . $data['driverCode'];
            }
        }
        else {
            // set error title
            $data['title'] = 'Error';

            // // set the Exception class and the Exception code as subtitle
            $data['subtitle'] = get_class($e) . ' (Exception code: ' . $data['code'] . ')';
        }

        // render the source code

        if ($e instanceof QueryException) {
            // parse the sql line from the message if exists
            if (preg_match('/at line (\d)$/', $data['message'], $match)) {
                $sqlLine = $match[1];
            }
            else {
                $sqlLine = 0;
            }
            // set the SQL Statement as source
            $data['source'] = $this->renderSQL($data['sql'], $sqlLine);
        }
        else {
            // set the PHP Code as source
            $data['source'] = $this->renderPHP($data['file'], $data['line']);
        }

        // render the trace

        $data['trace'] = $this->renderTrace($data['trace']);

        // strip the filename

        $data['file'] = $this->stripFile($data['file']);

        // choose the template

        $view = config('app.debug') ? 'errors.debug' : 'errors.default';
        if (!config('app.debug') && view()->exists('errors.' . $data['status'])) {
            $view = 'errors.' . $data['status'];
        }

        // send the response

        $headers = ($e instanceof HttpException) ? $e->getHeaders() : [];

        return response()->view($view, $data, $data['status'], $headers)->send();
    }
private function handleForBrowser(Exception $e)
    {
//        $request = request();
//        if ($e instanceof ModelNotFoundException) {
//            $e = new NotFoundHttpException($e->getMessage(), $e);
//        }
//        elseif ($e instanceof AuthorizationException) {
//            $e = new HttpException(403, $e->getMessage());
//        }
//
//        if ($e instanceof HttpResponseException) {
//            return $e->getResponse();
//        }
//        if ($e instanceof AuthenticationException) {
//            header('Location: ' . url('auth/login'));
//            exit;
//        }
//        else if ($e instanceof ValidationException) {
//            return $this->convertValidationExceptionToResponse($e, $request);
//        }
//        else if ($request->isAjax() || $request->wantsJson()) {
//            /** @var HttpException $e */
//            return response()->json($e->getMessage(), $this->isHttpException($e) ? $e->getStatusCode() : 400);
//        }

        $data = $this->convertException($e);

        // set error title and subtitle

        if ($e instanceof HttpException) {
            // set the HTTP Response Status Text as error title
            $data['title'] = http_status_text($data['status']);

            // set the Exception class and the HTTP Response Status Code as subtitle
            $data['subtitle'] = get_class($e) . ', Status Code ' . $data['status'];
        }
        else if ($e instanceof QueryException) {
            // set title
            $data['title'] = 'SQL Error';

            // set the Exception class and error codes as subtitle
            $data['subtitle'] = get_class($e) . ' (Exception code: ' . $data['code'] . ')';
            if ($data['ansiCode'] !== null) {
                $data['subtitle'] .= ', ANSI SQLSTATE Error Code: ' . $data['ansiCode'];
            }
            if ($data['driverCode'] !== null) {
                $data['subtitle'] .= ', Driver-specific Error Code: ' . $data['driverCode'];
            }
        }
        else {
            // set error title
            $data['title'] = 'Error';

            // // set the Exception class and the Exception code as subtitle
            $data['subtitle'] = get_class($e) . ' (Exception code: ' . $data['code'] . ')';
        }

        // render the source code

        if ($e instanceof QueryException) {
            // parse the sql line from the message if exists
            if (preg_match('/at line (\d)$/', $data['message'], $match)) {
                $sqlLine = $match[1];
            }
            else {
                $sqlLine = 0;
            }
            // set the SQL Statement as source
            $data['source'] = $this->renderSQL($data['sql'], $sqlLine);
        }
        else {
            // set the PHP Code as source
            $data['source'] = $this->renderPHP($data['file'], $data['line']);
        }

        // render the trace

        $data['trace'] = $this->renderTrace($data['trace']);

        // strip the filename

        $data['file'] = $this->stripFile($data['file']);

        // choose the template

        $view = config('app.debug') ? 'errors.debug' : 'errors.default';
        if (!config('app.debug') && view()->exists('errors.' . $data['status'])) {
            $view = 'errors.' . $data['status'];
        }

        // send the response

        $headers = ($e instanceof HttpException) ? $e->getHeaders() : [];

        return response()->view($view, $data, $data['status'], $headers)->send();
    }
private function handleForBrowser ( Exception $ e ) { //        $request = request(); //        if ($e instanceof ModelNotFoundException) { //            $e = new NotFoundHttpException($e->getMessage(), $e); //        } //        elseif ($e instanceof AuthorizationException) { //            $e = new HttpException(403, $e->getMessage()); //        } // //        if ($e instanceof HttpResponseException) { //            return $e->getResponse(); //        } //        if ($e instanceof AuthenticationException) { //            header('Location: ' . url('auth/login')); //            exit; //        } //        else if ($e instanceof ValidationException) { //            return $this->convertValidationExceptionToResponse($e, $request); //        } //        else if ($request->isAjax() || $request->wantsJson()) { //            /** @var HttpException $e */ //            return response()->json($e->getMessage(), $this->isHttpException($e) ? $e->getStatusCode() : 400); //        } $ data = $ this -> convertException ( $ e ) ; // set error title and subtitle if ( $ e instanceof HttpException ) { // set the HTTP Response Status Text as error title $ data [ 'title' ] = http_status_text ( $ data [ 'status' ] ) ; // set the Exception class and the HTTP Response Status Code as subtitle $ data [ 'subtitle' ] = get_class ( $ e ) . ', Status Code ' . $ data [ 'status' ] ; } else if ( $ e instanceof QueryException ) { // set title $ data [ 'title' ] = 'SQL Error' ; // set the Exception class and error codes as subtitle $ data [ 'subtitle' ] = get_class ( $ e ) . ' (Exception code: ' . $ data [ 'code' ] . ')' ; if ( $ data [ 'ansiCode' ] !== null ) { $ data [ 'subtitle' ] .= ', ANSI SQLSTATE Error Code: ' . $ data [ 'ansiCode' ] ; } if ( $ data [ 'driverCode' ] !== null ) { $ data [ 'subtitle' ] .= ', Driver-specific Error Code: ' . $ data [ 'driverCode' ] ; } } else { // set error title $ data [ 'title' ] = 'Error' ; // // set the Exception class and the Exception code as subtitle $ data [ 'subtitle' ] = get_class ( $ e ) . ' (Exception code: ' . $ data [ 'code' ] . ')' ; } // render the source code if ( $ e instanceof QueryException ) { // parse the sql line from the message if exists if ( preg_match ( '/at line (\d)$/' , $ data [ 'message' ] , $ match ) ) { $ sqlLine = $ match [ 1 ] ; } else { $ sqlLine = 0 ; } // set the SQL Statement as source $ data [ 'source' ] = $ this -> renderSQL ( $ data [ 'sql' ] , $ sqlLine ) ; } else { // set the PHP Code as source $ data [ 'source' ] = $ this -> renderPHP ( $ data [ 'file' ] , $ data [ 'line' ] ) ; } // render the trace $ data [ 'trace' ] = $ this -> renderTrace ( $ data [ 'trace' ] ) ; // strip the filename $ data [ 'file' ] = $ this -> stripFile ( $ data [ 'file' ] ) ; // choose the template $ view = config ( 'app.debug' ) ? 'errors.debug' : 'errors.default' ; if ( ! config ( 'app.debug' ) && view ( ) -> exists ( 'errors.' . $ data [ 'status' ] ) ) { $ view = 'errors.' . $ data [ 'status' ] ; } // send the response $ headers = ( $ e instanceof HttpException ) ? $ e -> getHeaders ( ) : [ ] ; return response ( ) -> view ( $ view , $ data , $ data [ 'status' ] , $ headers ) -> send ( ) ; }
Send a error message as a HTTP response.

@param Exception $e
Send a error message as a HTTP response .