我想知道在没有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语句?
答案 0 :(得分:0)
Laravel具有通用的异常处理程序,所有未捕获的异常都将移至以下位置:
any(j(i) for i in s)
此类中有两种方法:App\Exceptions\Handler
和report
,可用来执行必要的操作。
请参阅:https://laravel.com/docs/5.8/errors
也就是说,您可以render
内的throw
异常,而无需在控制器中专门处理它们,可以在{{1}中定义一个常规的异常处理策略}类。