gpt4 book ai didi

exception - Laravel 5.1 - 抛出异常和 abort() 之间的区别

转载 作者:行者123 更新时间:2023-12-03 06:47:07 25 4
gpt4 key购买 nike

当我想在后端处理期间停止某个操作时,我一直在抛出异常。我忘记了我可以使用 Laravel abort() 方法。有什么理由使用 abort() 而不是抛出异常?它几乎做同样的事情吗?

我也问这个问题,因为我注意到,当我跟踪日志时,abort() 不显示堆栈跟踪,但抛出异常却显示。在这些情况下我不需要堆栈跟踪,因为我知道它失败的原因。我也不希望日志因这些已知的故障而变得巨大。

最佳答案

让我们看一下代码:

/**
* 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 方法似乎只是一个帮助器,如果代码 404 被传递,它会抛出一个 NotFoundHttpException ,否则它会抛出一个HttpException

我不确定为什么抛出 Exception 会导致日志记录,而使用 abort() 却不会。您可能需要检查异常处理程序,看看是否以不同的方式捕获和处理不同类型的异常。

您不必担心日志文件的大小。如今,存储非常便宜,文本占用的空间也很小。您从日志中获得的知识将远远超过其实际成本。

关于exception - Laravel 5.1 - 抛出异常和 abort() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34801804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com