在没有消息的情况下抛出自定义异常
Throwing custom exceptions without messages
我以前没有使用过自定义异常,现在看来我可能需要它们,但我不确定我是否正确理解了它们应该如何使用。
假设我有一个这样的自定义异常:
class not_found_exception extends exception{ }
然后我有一堆请求处理函数(我认为它们在野外被称为控制器)。而且每个函数都可以抛出不同类型的异常。如果 URL 不匹配,它会抛出我的自定义异常,脚本将捕获该类型的异常,并在捕获到时跳到下一个请求处理程序。但是其他类型的异常不应该被捕获,因为它们意味着 url 匹配但是应该显示一些其他错误。
问题是我的自定义异常不需要错误消息,因为它不会出现在任何地方,因为它应该被捕获,但其他异常会。那么可以只抛出一个空的 not_found_exception 异常吗?
简短的回答很简单:是的。那没关系。
有关异常的最佳实践的更多信息,请参阅此博客。它可能是为 .NET 编写的,但理论仍然可以应用于 PHP.
https://blogs.msdn.microsoft.com/kcwalina/2007/01/30/how-to-design-exception-hierarchies/
我以前没有使用过自定义异常,现在看来我可能需要它们,但我不确定我是否正确理解了它们应该如何使用。
假设我有一个这样的自定义异常:
class not_found_exception extends exception{ }
然后我有一堆请求处理函数(我认为它们在野外被称为控制器)。而且每个函数都可以抛出不同类型的异常。如果 URL 不匹配,它会抛出我的自定义异常,脚本将捕获该类型的异常,并在捕获到时跳到下一个请求处理程序。但是其他类型的异常不应该被捕获,因为它们意味着 url 匹配但是应该显示一些其他错误。
问题是我的自定义异常不需要错误消息,因为它不会出现在任何地方,因为它应该被捕获,但其他异常会。那么可以只抛出一个空的 not_found_exception 异常吗?
简短的回答很简单:是的。那没关系。 有关异常的最佳实践的更多信息,请参阅此博客。它可能是为 .NET 编写的,但理论仍然可以应用于 PHP.
https://blogs.msdn.microsoft.com/kcwalina/2007/01/30/how-to-design-exception-hierarchies/