异常处理是Java开发的重要组成部分。处理任何错误情况(例如资源不可访问、无效输入、空输入等)是每个应用程序的非功能性要求。Java以try、catch和finally关键字的形式提供了几种内置于语言本身的异常处理功能.Java编程语言还允许您使用throw和throws关键字创建新的异常并抛出它们。其实在Java编程中,Java异常处理不仅仅是知道语法这么简单,它必须遵循标准的JDK库,以及几个处理错误和异常的开源代码。在这里,我们将讨论一些关于异常处理的良好Java实践。1)对可恢复错误使用检查异常,对编程错误使用未检查错误。在已检查异常和未检查异常之间进行选择总是让Java程序员感到困惑。Checkedexceptions保证你为错误情况提供异常处理代码,这是一种从语言上强制你编写健壮代码的方式,但同时引入了很多乱七八糟的代码并使其不可读。当然,如果你有替换和恢复策略,捕获异常并做一些事情似乎是合理的。在Java编程中选择检查异常和运行时异常。2)在finally块中关闭或释放资源这是Java编程中众所周知的良好做法,在处理网络和IO类时相当于一个标准。在finally块中关闭资源,保证在正常和异常执行的情况下,合理释放之前稀缺的资源,这是finally块保证的。从Java7开始,该语言有一个更有趣的特性:资源管理自动化或ARM块可以实现这个功能。但是,我们还是要记得在finally块中关闭资源,这对于释放像FileDescriptors这样有限的资源非常重要,这些资源在socket和文件编程的情况下使用。3)在堆栈跟踪中包含异常的原因很多时候,Java库和开源代码会在抛出由另一个异常引起的异常时将一个异常包装到另一个异常中。记录和打印根异常变得非常重要。Java异常类提供了getCause()方法来获取异常原因,可以提供更多关于异常根源的信息。这种Java实践在调试或故障排除时大有帮助。永远记住,如果将一个异常包装到另一个异常中,则构造一个新异常会传递源异常。4)始终提供有意义和完整的异常信息异常信息是最重要的地方,因为这是程序员最先看到的地方,在这里你可以找到问题的根源。这里始终提供准确和真实的信息。5)避免过度使用checkedexceptionsCheckedexceptions在执行方面有一定的优势,但同时也破坏了代码,通过屏蔽业务逻辑使得代码的可读性降低。只要您不过度使用已检查的异常,就可以最大限度地减少这些情况,最终您将获得更清晰的代码。您还可以使用新的Java7功能来删除重复项。6)将检查异常转换为运行时异常。这是用于限制大多数框架(如Spring)中检查异常的使用的技术之一。来自JDBC的大多数已检查异常都包装到DataAccessException中,而(DataAccessException)异常是未检查异常。这就是Java优秀实践带来的好处。具体的异常仅限于特定的模块,比如SQLException,放在DAO层,意义明确的运行时异常抛给client层。7)记住异常对于性能来说代价高昂需要记住的一件事是异常代价高昂并且会使您的代码运行缓慢。如果你有一个从ResultSet(结果集)读取的方法,它经常抛出SQLException并且不移动到下一个元素,那么它的执行速度会比不抛出异常的普通代码慢得多。因此,在没有固定原因的情况下,最大限度地减少不必要的异常捕获和移动。不要只是抛出和捕获异常,如果你可以使用布尔变量来表示执行结果,你可能会得到一个更干净、更高效的解决方案。修复错误源,避免不必要的异常捕获。8)避免空的catch块没有什么比空的catch块更糟糕的了,因为它不仅隐藏了错误和异常,而且还可能使您的对象处于不可用或脏状态。只有当您非常确定异常不会以任何方式继续影响对象状态时,空的catch块才会变得毫无意义,但在程序执行期间记录错误仍然是一个好主意。对于在Java编程中编写异常处理代码,这不仅是Java的良好实践,而且是最普遍的实践。9)使用标准异常我们的第九个最佳实践建议使用标准和内置的Java异常。使用标准异常而不是每次都创建我们自己的异常对于现在和将来的可维护性和一致性都非常有用。重用标准异常使代码更具可读性,因为大多数Java开发人员都熟悉JDK中的标准异常,如RuntimeException、IllegalStateException、IllegalArgumentException或NullPointerException,(开发人员)他们可以对每个异常一目了然。这个异常的目的不是为了在代码或文档中找到用户定义的异常。10)记录任何方法抛出的异常Java提供throw和throws关键字来抛出异常,在javadoc中使用@throw记录任何方法可能抛出的异常。如果您编写API或公共接口,这将变得非常重要。任何方法抛出的异常都会相应地记录下来,以便您可以下意识地提醒任何使用(该方法)的人。这些都是在Java编程中处理异常时要遵循的良好做法。让我们知道在Java编程中编写异常处理代码时应遵循的做法。
