欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java中的checked和unchecked异常

程序员文章站 2022-05-31 13:28:50
...

具体见下边的文档。

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();
    }

 

Java中的checked和unchecked异常