java - java - 为什么算术异常是Java中的未经检查的异常
问题描述
为什么算术异常是未经检查的异常,为什么我们在 Java 中定义了两种类型的异常 Unchecked 和 Checked?
解决方案
已检查异常是在编译时检查的异常。如果方法中的某些代码引发检查异常,则该方法必须要么处理异常,要么必须使用 throws 关键字指定异常。
import java.io.*;
class Main {
public static void main(String[] args) {
FileReader file = new FileReader("C:\\test\\a.txt");
BufferedReader fileInput = new BufferedReader(file);
// Print first 3 lines of file "C:\test\a.txt"
for (int counter = 0; counter < 3; counter++)
System.out.println(fileInput.readLine());
fileInput.close();
}
}
Unchecked 是在编译时未检查的异常。在 C++ 中,所有异常都是未经检查的,因此编译器不会强制它处理或指定异常。程序员要文明,并指定或捕获异常。
+-----------+
| Throwable |
+-----------+
/ \
/ \
+-------+ +-----------+
| Error | | Exception |
+-------+ +-----------+
/ | \ / | \
\_________/ \____/ \
+------------------+
unchecked checked | RuntimeException |
+------------------+
/ | | | \
\_________________/
unchecked
推荐阅读
- python - Pyspark 创建字符串类型的测试数据
- reactjs - 如何将模拟事件传递给 React.cloneElement() 方法返回的反应元素
- postgresql - 使用连接中的子查询简化聚合查询
- wcf - 在 .Net Core 2.2 Web API 中添加 WCF 参考失败
- android - 无法在 PermissionHandler 中禁用相机权限
- forms - /?#/ 在带有 Vue-router 的 Vue 中是什么意思?
- python - 为赛道添加积分
- javascript - 从 ssr 上的 url 参数中获取带有 id 的数据
- bash - docker-compose 启动时的 pv 输出未按预期工作
- r - 为什么 do.call 函数在这种情况下会出错?