java - java中检查异常有什么用?

标签 java exception runtimeexception

在oracle文档中它说

If a client can reasonably be expected to recover from an exception, make it a checked exception. If a client cannot do anything to recover from the exception, make it an unchecked exception.

例如,ClassNotFoundException 和 CloneNotSupportedException 是受检查异常的两个示例,但是如果我们在运行时捕获这些类型的异常,则客户端无法执行任何操作来解决它们。 但是,如果他们用“客户端”这个词来指开发人员,那就没有意义了,因为程序员无法在运行时执行任何操作来从这些类型的异常中恢复。

最佳答案

我脑子里有两件事

  1. 出现问题时清理困惑/像什么都没发生一样继续/尝试其他方法来完成任务。假设您已打开一个数据库连接并从中读取数据。如果出现异常,您需要确保在离开该地方之前清理干净。例如,您可以在finally block 中使用connection.close() 等。您不希望您的应用程序因不太严重的错误而致命地抛出异常。

  2. 您可能想重新抛出异常。假设它与上面的异常相同,但这不是您想要向用户显示的消息。您可以编写一个映射器来抛出您使用所需消息编写的自定义异常。

关于java - java中检查异常有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38118232/

相关文章:

java - Maven & Eclipse Mars编译java 1.8错误

java - 结合 DispatcherServlet、ContextLoaderListener 和 SpringSecurity

java - 如何使用 IntelliJ 读取属性文件

eclipse - Ant 构建脚本完全挂起,控制台中没有消息

android - 致命异常 : AsyncTask #1, java.lang.RuntimeException:执行 doInBackground() 时发生错误

java - 将 com.sun.mail.imap.IMAPMessage 转换为字符串

c# - 未找到自定义 Visual C++ CRL 程序集

delphi - Delphi 中的异常和 DLL

python - 名称错误 : global name 'xrange' is not defined in Python 3

java.lang.RuntimeException : Unable to get provider - for System group app (system/priv-app/) 错误