2
當我想在後端處理期間中止某個操作時,我一直在拋出異常。我忘記了我可以使用Laravel abort()方法。是否有任何理由使用abort()拋出異常?它幾乎做同樣的事情?我也問,因爲我注意到,雖然我拖尾我的日誌,abort()不顯示堆棧跟蹤,但拋出異常。在這些情況下,我不需要堆棧跟蹤,因爲我知道它爲什麼會失敗。我也不希望日誌因這些已知的故障而變得很大。Laravel 5.1 - 拋出異常和中止之間的區別()
當我想在後端處理期間中止某個操作時,我一直在拋出異常。我忘記了我可以使用Laravel abort()方法。是否有任何理由使用abort()拋出異常?它幾乎做同樣的事情?我也問,因爲我注意到,雖然我拖尾我的日誌,abort()不顯示堆棧跟蹤,但拋出異常。在這些情況下,我不需要堆棧跟蹤,因爲我知道它爲什麼會失敗。我也不希望日誌因這些已知的故障而變得很大。Laravel 5.1 - 拋出異常和中止之間的區別()
讓我們來看看代碼:
/**
* Throw an HttpException with the given data.
*
* @param int $code
* @param string $message
* @param array $headers
* @return void
*
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
* @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
*/
public function abort($code, $message = '', array $headers = array())
{
if ($code == 404)
{
throw new NotFoundHttpException($message);
}
throw new HttpException($code, $message, null, $headers);
}
所以看來abort
方法僅僅是其拋出一個NotFoundHttpException
如果代碼404
通過,否則它拋出一個HttpException
幫手。
我不知道爲什麼扔Exception
會導致日誌記錄,而使用abort()
不會。你可能想檢查你的異常處理程序,看看是否有不同類型的異常被捕獲和處理。
您不應該擔心日誌文件的大小。現在的存儲空間非常便宜,文本只佔用很少的空間。您從日誌中獲得的知識遠遠超過其物理成本。
很酷,感謝您的輸入! – kenshin9