[英]Laravel exception handling without try/catch statement
我想知道在不使用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語句?
Laravel有一個通用的異常處理程序,所有未捕獲的異常都會轉到:
App\\Exceptions\\Handler
此類中有兩種方法: report
和render
,您可以使用這些方法執行必要的操作。
請參閱: https : //laravel.com/docs/5.8/errors
也就是說,您可以在class Driver
throw
異常,而不需要在控制器中專門處理它們,您可以在Handler
類中定義一般的異常處理策略。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.