Skip to content

Commit 00dea87

Browse files
committed
Improve the Exceptions Handling
1 parent 95322dd commit 00dea87

1 file changed

Lines changed: 22 additions & 20 deletions

File tree

app/Platform/Exceptions/Handler.php

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -84,21 +84,13 @@ public function render(Request $request, Exception $e)
8484
* Render the given HttpException.
8585
*
8686
* @param \Symfony\Component\HttpKernel\Exception\HttpException $e
87+
* @param \Nova\Http\Request $request
8788
* @return \Symfony\Component\HttpFoundation\Response
8889
*/
8990
protected function renderHttpException(HttpException $e, Request $request)
9091
{
91-
$status = $e->getStatusCode();
92-
93-
if ($request->ajax() || $request->wantsJson()) {
94-
$e = FlattenException::create($e, $status);
95-
96-
return Response::json($e->toArray(), $status, $e->getHeaders());
97-
}
98-
99-
// If exists a View for this HTTP error.
100-
else if (View::exists("Errors/{$status}")) {
101-
return $this->createErrorResponse($status, $e);
92+
if (! is_null($response = $this->createResponse($e, $request))) {
93+
return $response;
10294
}
10395

10496
return parent::renderHttpException($e, $request);
@@ -108,18 +100,30 @@ protected function renderHttpException(HttpException $e, Request $request)
108100
* Convert the given exception into a Response instance which contains an error page.
109101
*
110102
* @param int $status
111-
* @param \Exception $exception
103+
* @param \Symfony\Component\HttpKernel\Exception\HttpException $e
104+
* @param \Nova\Http\Request $request
112105
* @return \Symfony\Component\HttpFoundation\Response
113106
*/
114-
protected function createErrorResponse($status, Exception $e)
107+
protected function createErrorResponse(HttpException $e, Request $request)
115108
{
116-
$exception = FlattenException::create($e, $status);
109+
$status = $e->getStatusCode();
110+
111+
$e = FlattenException::create($e, $status);
112+
113+
if ($request->ajax() || $request->wantsJson()) {
114+
return Response::json($e->toArray(), $status, $e->getHeaders());
115+
}
116+
117+
//
118+
else if (! View::exists("Errors/{$status}")) {
119+
return;
120+
}
117121

118122
$view = View::make('Layouts/Default')
119123
->shares('title', "Error {$status}")
120-
->nest('content', "Errors/{$status}", compact('exception'));
124+
->nest('content', "Errors/{$status}", array('exception' => $e));
121125

122-
return Response::make($view->render(), $status, $exception->getHeaders());
126+
return Response::make($view->render(), $status, $e->getHeaders());
123127
}
124128

125129
/**
@@ -131,11 +135,9 @@ protected function createErrorResponse($status, Exception $e)
131135
protected function convertExceptionToResponse(Exception $e, Request $request)
132136
{
133137
if (! Config::get('app.debug', false)) {
134-
if ($request->ajax() || $request->wantsJson()) {
135-
return Response::json('Internal Server Error', 500);
136-
}
138+
$exception = new HttpException(500, 'Internal Server Error');
137139

138-
return $this->createErrorResponse(500, new Exception('Internal Server Error'));
140+
return $this->createErrorResponse($exception, $request);
139141
}
140142

141143
// We will instruct Whoops to not exit after it displays the exception as it

0 commit comments

Comments
 (0)