在laravel5中使用以下代碼並沒有捕獲異常
try{ var_dump($val); }catch (Exception $e){ var_dump($e); }
Laravel 5 時代控制器被強制放到了子命名空間下,這樣直接就無法調用根命名空間下的 Exception 類了。Laravel 4 的控制器在跟命名空間下,是可以直接使用的。PHP 5.3 以后所有類就默認在命名空間下了,如果不聲明,就默認在頂級命名空間下。
所以要使用try catch的語法,要么代碼在最開頭使用 use \Exception
,要么使用catch (\Exception $e)
.所以正確使用方式是
try{ var_dump($val); }catch (\Exception $e){ var_dump($e); echo $e->getMessage(); }