簡體   English   中英

沒有try / catch語句的Laravel異常處理

[英]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

此類中有兩種方法: reportrender ,您可以使用這些方法執行必要的操作。

請參閱: https//laravel.com/docs/5.8/errors

也就是說,您可以在class Driver throw異常,而不需要在控制器中專門處理它們,您可以在Handler類中定義一般的異常處理策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM