始终使用选中的异常



我最近一直在重新分解一些Java代码。。。我发现抛出了许多RuntimeException(即未检查的异常)。我创建了自己的已检查异常,并用自己的异常替换了这些RuntimeException的每个实例。然后,这迫使我检查异常。

话虽如此,我发现检查异常更好,因为另一个开发人员会确保处理异常。。。而不是程序只接受异常而不向用户显示任何内容。

我读过很多关于未检查与检查异常的文章。。然而,我仍然觉得我检查了更多的异常,因为它减少了人为错误。

它主要使用检查过的异常,编程有多差?有没有其他人觉得他们更喜欢检查过的异常而不是未检查的异常?

尽管不同的人对此会有不同的意见,但我的建议是:

  • 对于应该由您认为是应用程序逻辑的一部分来处理的异常情况,请使用checked exceptions,例如:用户键入了不存在的用户名来登录,用户试图保存和项目超出了订阅允许的限制,等等。这样,发现异常条件的代码的客户端就必须至少承认该条件可能发生的事实,并希望能以最合适的方式处理它
  • 在不受您控制且无法使用应用程序逻辑恢复的情况下,使用未检查的异常会提前且有噪音地失败,例如:您的函数接收到错误的参数作为参数:听起来是抛出"非法参数异常"的完美场景,这在大多数编程语言中都是运行时异常

检查过的异常看起来很好,但在实践中,它们根本无法解决设计要解决的问题(更多详细信息请点击此处https://arpytoth.com/2016/04/08/the-problem-with-checked-exceptions/)。

Java并不强制您处理异常,它只是强制您准确地确认哪些异常可能通过。大多数开发人员使用空块捕获异常,或者使用throws子句让异常通过。这将使代码变得更加冗长、复杂,有时甚至难以测试,从而总体上降低代码质量,而没有任何显著的好处。还要注意的是,Java的新特性在检查异常的情况下也不太好(例如lambda表达式)。我的建议是避免检查异常,而是使用运行时。

相关内容

  • 没有找到相关文章

最新更新