Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error handling with try and catch in Laravel

I want to implement a good error handling in my app, I have forced this file for catching the error.

App\Services\PayUService

try {
  $this->buildXMLHeader; // Should be $this->buildXMLHeader();
} catch (Exception $e) {
        return $e;
}

App\Controller\ProductController

function secTransaction(){
  if ($e) {
    return view('products.error', compact('e'));
  }
}

And this is what I get.

enter image description here

I don't know why Laravel is not redirecting me to the view. Is the error forced right?

like image 553
bigbiggerpepe Avatar asked Oct 30 '15 20:10

bigbiggerpepe


People also ask

How do you do error reporting in laravel?

Through your config/app. php , set 'debug' => env('APP_DEBUG', false), to true . Or in a better way, check out your . env file and make sure to set the debug element to true.


1 Answers

You are inside a namespace so you should use \Exception to specify the global namespace:

try {

  $this->buildXMLHeader();

} catch (\Exception $e) {

    return $e->getMessage();
}

In your code you've used catch (Exception $e) so Exception is being searched in/as:

App\Services\PayUService\Exception

Since there is no Exception class inside App\Services\PayUService so it's not being triggered. Alternatively, you can use a use statement at the top of your class like use Exception; and then you can use catch (Exception $e).

like image 138
The Alpha Avatar answered Oct 19 '22 02:10

The Alpha