我對理解Laravel如何處理異常有困難。 我註冊global.php異常處理程序是這樣的:Laravel 4中的異常處理 - 理解流程的問題
use MyNamespace\Custom\Exceptions\NotAllowedException;
App::error(function(NotAllowedException $exception, $code)
{
die("MyNamespace\Custom\Exceptions\NotAllowedException catched");
});
App::error(function(\Exception $exception)
{
echo "general exception thrown<br/>";
});
在控制器的行動我現在拋出一個NotAllowedException。然而奇怪的部分是,之後的第一個Exception被捕獲並且NotFoundException。從而
的輸出是:
general exception thrown
MyNamespace\Custom\Exceptions\NotAllowedException catched
我認爲異常處理程序棧,因此僅NotAllowedException被處理。但我錯了。我是否誤解了Laravel中錯誤處理的概念還是這種意外行爲?
另一件事:我無法將http響應標頭設置爲401.對於此問題,SO上還有其他線程,但目前還沒有解決方案。如果有人對此有所瞭解,我將不勝感激。
謝謝你的時間和每一個迴應! 乾杯
謝謝你,我想出了與你在這裏回答相同的行爲:)也許這對其他人有用:只要你使用View :: make渲染視圖,響應代碼就設置爲200.要正確設置代碼,使用Response :: view()可以設置代碼。 – grange