我是承包商,以技术负责人的身份为我的客户设计企业Java应用程序。该应用程序将由最终用户使用,当我们离开时,将有一个支持团队为该应用程序提供支持。
与我一起工作的其他技术负责人给人的印象是异常处理会使代码变脏。系统应仅从服务层引发检查的异常,而其余代码应从所有其他层引发运行时异常,因此无需处理未检查的异常。
在业务应用程序中抛出未经检查的异常有什么需要?
根据我过去有关运行时异常的经验:
1)未经检查的异常使代码不可预测,因为它们甚至在Javadoc中也不会显示。
2)在业务应用程序中抛出未经检查的异常是没有意义的,因为当您将其抛出并直接出现在用户脸上时,您如何向用户解释?我已经看过足够多的Web应用程序,500 -Internal Error. Contact Administrator
它对最终用户或管理该应用程序的支持团队没有任何意义。
3)引发运行时异常会强制引发异常的类的用户遍历源代码以进行调试,并查看引发异常的原因。只有在很好地记录了运行时异常的Javadoc的情况下,才可以避免这种情况,而我发现这种情况永远不会发生。
@throws
标记将它们记录下来,则会出现它们,顺便说一句,这是一个好习惯。
@throws
标记记录方法可以抛出的每个未经检查的异常,但不要使用throws关键字在方法声明中包括未经检查的异常。