没有avel / catch语句的Laravel异常处理

时间:2019-06-13 18:28:04

标签: php laravel exception

我想知道在没有try / catch语句的情况下抛出异常的好习惯。例如

///类驱动程序

class Driver{

 public function setAge($age)
   if(is_string($age)){
      throw new StringException('Age can not be string')
   }
   if($age>100){
      throw new TooLargeNumberException('Age is too large')
   }
}

///控制器

$d= new Driver()
$d->setAge(101) /// return TooLargeNumberException

try{
$d= new Driver()
$d->setAge(101)
}
catch(StringException $e){
 return $e->getMessage()
}
catch(TooLargeNumberException $e){
return $e->getMessage()
}

请告诉我如何处理例外情况。哪个解决方案正确?是否需要始终使用try / catch语句?

1 个答案:

答案 0 :(得分:0)

Laravel具有通用的异常处理程序,所有未捕获的异常都将移至以下位置:

any(j(i) for i in s)

此类中有两种方法:App\Exceptions\Handlerreport,可用来执行必要的操作。

请参阅:https://laravel.com/docs/5.8/errors

也就是说,您可以render内的throw异常,而无需在控制器中专门处理它们,可以在{{1}中定义一个常规的异常处理策略}类。