Checked Exception in Java2025年4月8日 | 阅读 5 分钟 受检异常 (Checked exceptions) 是在编译时进行检查的异常。它也被称为编译时异常。Java 编译器强制开发者处理它们。 如果一个可能抛出受检异常的方法没有使用 try-catch 块来处理它,或者没有使用 throw 关键字来声明它,那么程序将无法编译。它们通常由外部因素引起,例如文件处理、数据库访问或网络通信失败。 受检异常的类型受检异常的类型有:
受检异常的优点
受检异常的常见示例1. IOException当输入或输出操作失败时,例如尝试读取一个不存在的文件时,会发生 IOException。 示例当我们编译上面的程序时,会得到以下异常。 Main.java:15: error: unreported exception IOException; must be caught or declared to be thrown String input1 = br.readLine(); ^ Main.java:19: error: unreported exception IOException; must be caught or declared to be thrown String input2 = br.readLine(); 2. SQLException当出现与数据库连接相关的问题时,例如无效的凭据或数据库不可用,会发生 SQLException。 示例当我们编译上面的程序时,会得到以下异常。 Main.java:8: error: unreported exception SQLException; must be caught or declared to be thrown Connection con = DriverManager.getConnection("jdbc:mysql://:3306/db", "user", "password"); 3. ClassNotFoundException当 Java 尝试使用 Class.forName() 动态加载一个类,但该类在类路径中找不到时,会发生 ClassNotFoundException。 示例当我们编译上面的程序时,会得到以下异常。 Main.java:5: error: unreported exception ClassNotFoundException; must be caught or declared to be thrown Class.forName("com.example.MyClass"); // The class does not exist, and a ClassNotFoundException will be thrown 4. InterruptedException当一个线程在睡眠或等待时被中断时,会发生 InterruptedException。 示例当我们编译上面的程序时,会得到以下异常。 Main.java:4: error: unreported exception InterruptedException; must be caught or declared to be thrown Thread.sleep(5000); ^ 1 error 5. FileNotFoundException当尝试打开由指定路径名表示的文件失败时,会发生 FileNotFoundException。 示例当我们编译上面的程序时,会得到以下异常。 Main.java:11: error: unreported exception FileNotFoundException; must be caught or declared to be thrown Scanner scanner = new Scanner(file); ^ 1 error 6. ParseException在将字符串解析为选定格式(包括日期或更多内容)时会抛出 ParseException。它是 java.text 包的一部分。请看下面的例子。 示例当我们编译上面的程序时,会得到以下异常。 Main.java:9: error: unreported exception ParseException; must be caught or declared to be thrown Date parsedDate = dateFormat.parse(invalidDate); ^ 1 error 7. MalformedURLException当遇到无效或格式错误的 URL 时,会抛出 MalformedURLException。它是 java.net 包的一部分。请看下面的程序。 示例当我们编译上面的程序时,会得到以下异常。 Main.java:6: error: unreported exception MalformedURLException; must be caught or declared to be thrown URL url = new URL(invalidURL); 处理受检异常在 Java 中处理受检异常主要有两种方法:
1. 使用 try-catch 块我们可以使用 try-catch 块来处理受检异常。 要阅读更多关于 try-catch 块 的内容 示例输出 如果文件 nonexistent.txt 不存在 Error: The specified file was not found! 如果文件 nonexistent.txt 存在,它的内容将被打印出来 2. 使用 throws 关键字throws 关键字将异常传播给调用方法进行处理或进一步传播。 要阅读更多关于 Java throws 关键字 的内容 示例编译并运行输出 Enter your name Amit Welcome Amit 何时在 Java 中使用受检异常?应在可预测的事件中使用受检异常,以防止不可避免的事件。如果异常是受检异常,代码可以从中恢复。如果错误看起来可以通过受检异常来解决,那么就使用受检异常。它主要用于测试代码的边缘情况。 通常,在测试阶段,受检异常会派上用场。 下一主题 |
在面向对象编程的领域,不可变性是一个强大的概念,可以提高代码的健壮性、线程安全性和整体程序稳定性。不可变类是指其实例在创建后无法修改的类。虽然不可变性带来了许多优势,但在某些情况下我们需要处理...
7 分钟阅读
? Java 的 java.util 类用于表示日期。Date 类。尽管此类提供了各种处理日期的方法,但它不提供为日期设置静态值的方法。尽管如此,我们仍然可以通过使用 java.time.LocalDate 来实现此目的...
阅读 4 分钟
Java URLEncoder 是一个实用类,用于对 URL(统一资源定位符)进行编码。通过对 URL 进行编码可确保可靠性和安全性。当用户通过 get 方法请求特定站点时,表单参数及其值将添加到 '?' 符号之后...
阅读 3 分钟
Java 中的代码管理是一个您可能熟悉的概念。它涉及如何组织源代码,以便在维护期间可以更轻松地处理它。除了其他时间复杂度外,此循环复杂度是在...上计算的。
5 分钟阅读
No suitable driver found for JDBC 是 Java 中的一个异常,通常在找不到用于建立数据库连接的驱动程序时发生。在本节中,我们将讨论为什么会收到此类错误以及如何解决此问题...
阅读 4 分钟
在计算机编程中,队列是用于以特定顺序组织元素集合的基本数据结构。Java.util.Queue 接口和 java.util.LinkedList 类只是 Java 提供的用于处理队列的内置类和接口中的两个。在本文中,我们将...
阅读 4 分钟
聊天机器人彻底改变了企业和个人进行对话的方式。随着自然语言处理 (NLP) 和机器学习的进步,聊天机器人已成为自动化客户支持、改善用户体验和简化各种业务运营的流行工具。在本文中,我们将探讨...
阅读 6 分钟
类似于 YACC,它也是一个解析器。是 Java Compiler-Compiler 的简写。它是一个由 Oracle Corporation 开发的开源流行解析器生成器和词法分析器生成器工具。它用 Java 编程语言编写。它在 BSD 许可证下许可....
阅读 6 分钟
Permutation Java 要确定序列元素的字典序排列,请应用排列方法。它指的是按字典序将数组的项重新排列为下一个更大的排列。重新排列项以产生字典序排列是基础...
阅读 6 分钟
错误是在程序执行时出现的,问题、bug 或人为错误。异常会中断程序的流程并异常终止程序。不建议异常终止程序,因此我们需要...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India