rahul16590
rahul16590

Reputation: 401

Implementation of Exception Handling in Laravel 5.2

I am trying to implement exception handling in my application. For this Laravel framework has its own mechanism to handle the exception using report and render method. But to implement exception I need to track the source from where the exception has been raised e.g. specific page, route etc. For this I need to pass the url to report and render method but unable to do so. What needs to be done in order to implement this in below report and render function.

public function report(Exception $e)
{
    parent::report($e);
}


public function render($request, Exception $e)
{
    /*  Token mismatch Exception handler  start */
    if ($e instanceof \Illuminate\Session\TokenMismatchException) {
        return response()->view('errors.sessionExpire', [], 500);
      }
    /* Token mismatch Exception handler  start */
    return parent::render($request, $e);
}

Upvotes: 0

Views: 480

Answers (2)

Ravi Hirani
Ravi Hirani

Reputation: 6539

You need to use Exception::getTrace

var_dump($e->getTrace()); 

above line will give you all details regarding exception.

public function report(Exception $e){
    echo '<pre>';  // add this line 
    print_r($e->getTrace()); // add this line 
    parent::report($e);
}

Upvotes: 1

Denis Mysenko
Denis Mysenko

Reputation: 6534

As you can see from your own example, you have an instance of Request in the argument list. And Request has all request-specific details like current route, URL and so on.

$request->url(); // Current request URL
$request->fullUrl(); // With query parameters
$request->route(); // Get the route closure for this request path

You can also create your own exception classes that accept as many parameters as you wish!

And the less comfortable way already mentioned – you could go through the exception trace.

Upvotes: 2

Related Questions