抛出不带消息的自定义异常


Throwing custom exceptions without messages

我以前没有使用过自定义异常,现在看来我可能需要它们,但我不确定我是否正确理解了它们应该如何使用。

假设我有一个这样的自定义异常:

class not_found_exception extends exception{ }

然后我有一堆请求处理函数(我认为他们被称为野外控制器)。每个函数可以抛出不同类型的异常。如果URL不匹配,则抛出自定义异常,脚本将捕获该类型的异常,如果捕获到,则跳到下一个请求处理程序。但是其他类型的异常不应该被捕获,因为它们意味着url匹配,但是应该显示一些其他错误。

问题是我的自定义异常不需要错误消息,因为它不会出现在任何地方,因为它应该被捕获,但其他异常需要。抛出一个空的not_found_exception异常可以吗?

简短的回答是:是的。没关系。有关Exception的最佳实践的更多信息,我建议您参考这个博客。它可能是为。net编写的,但理论仍然可以应用于PHP。

https://blogs.msdn.microsoft.com/kcwalina/2007/01/30/how-to-design-exception-hierarchies/