为什么arithmeticexception是未经检查的异常,为什么我们在Java中定义了两种类型的异常Unchecked和Checked?
答案 0 :(得分:1)
已检查的异常是在编译时检查的异常。如果方法中的某些代码抛出已检查的异常,则该方法必须处理异常,或者必须使用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();
}
}
未选中是在编译时未检查的异常。在C ++中,所有异常都是未选中的,因此编译器不会强制它处理或指定异常。程序员应该文明,并指定或捕获例外。
+-----------+
| Throwable |
+-----------+
/ \
/ \
+-------+ +-----------+
| Error | | Exception |
+-------+ +-----------+
/ | \ / | \
\_________/ \____/ \
+------------------+
unchecked checked | RuntimeException |
+------------------+
/ | | | \
\_________________/
unchecked