Java中的checked和unchecked异常
具体见下边的文档。
https://www.javatpoint.com/exception-handling-in-java
异常分为两大类,Exception和Error(这里将Error也说为异常,可以有些不准确哦)。
而Exeption又分为IOException,SQLException, ClassNotFoundException, RuntimeException等。其中RuntimeException又可以包含很多种类异常。具体结构层次见下图。
从程序员需不需要在代码中处理的角度,这些异常总体可以分为两大类: checked和unchecked。
checked异常,主要指继承自Exception的那些除了RuntimeException的异常。checked异常需要程序员自己做处理,比如用try...catch...捕获处理, 或者通过throws让所在的方法抛出。
unchecked异常,主要是指继承自RuntimeException,以及那些继承自Error的异常,是不需要程序员自己处理的,会由JVM虚拟机直接处理。
比如下边的测试代码,只有在调用testCheckedExeption()时,才需要在main()方法中处理异常,其他两种情况都不需要。
注:IllegalArgumentException也属于RuntimeException哦
另外,异常并不是一定由程序通过throw关键字抛出,JVM在运行时也会抛出异常的。
public static void main(String[] args) /*throws IOException*/ {
// testCheckedExeption();
// testUnCheckedExeption();
testError();
}
public static void testCheckedExeption() throws IOException {
throw new IOException();
}
public static void testUnCheckedExeption(){
throw new IllegalArgumentException();
}
public static void testError(){
throw new OutOfMemoryError();
}
上一篇: ListControl
下一篇: 点击Echarts仪表盘指针弹出展示列表
推荐阅读