我无法理解 Laravel 如何处理异常。我在 global.php 中注册了异常处理程序,如下所示:
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。然而奇怪的是,第一个异常被捕获,然后是 NotFoundException。
因此输出为:
general exception thrown
MyNamespace\Custom\Exceptions\NotAllowedException catched
我认为异常处理程序堆栈,因此只处理 NotAllowedException。但我错了。我是否误解了 Laravel 中错误处理的概念,或者这是出乎意料的行为?
另一件事:我无法将 http 响应标头设置为 401。关于此问题,SO 上还有其他线程,但到目前为止还没有解决方案。如果有人对此有所了解,我将不胜感激。
感谢您的时间和每一个回复!干杯