美文网首页
【JAVA提升】- 关于异常

【JAVA提升】- 关于异常

作者: 我不是李小龙 | 来源:发表于2017-04-12 16:18 被阅读0次

    异常

    1. 异常类类图

    在java世界里,所有的异常类都是Throwable的子类。 Throwable两个子类 Error 和 Exception, Error也是可以被捕获的,只是大多数情况下,认为出现error是致命的错误,不应该被忽略,所有大多数情况下都是捕获的Exception。

    Exception的子类就是各种xxxException,而Error的子类就是各种XXXError了。

    Throwable

    2. try-catch-finally

    示例:

    package com.fun.lang;
    
    /**
     * finally是不是一定执行
     *
     * @author fun
     * @date 2017-03-27 17:17
     */
    public class TryCatchDemo {
    
        public static void main(String[] args) {
    
            try {
                System.out.println("into try block...");
    //          System.exit(0); // 打开此注释,会发现,finally里面的代码并没有执行,这个很好理解,虚拟机都退出了,怎么执行代码
                throw new Error();
            }catch (Throwable e) {
                System.out.println("into catch block...");
    
            }finally {
                System.out.println("into finally block...");
            }
    
        }
    
    }
    
    /*
     * output:
     *into try block...
     *into catch block...
     *into finally block...
     */
    

    结论:

    1. finally里面的代码不一定执行的,例如虚拟机退出了
    2. Throwable两个子类 Error 和 Exception, Error也是可以被捕获的,只是catch的是当前捕获的Error或者更上级的类才行捕获Error
    3. catch的是时候可以catch到最顶层Throwable,这样整个异常系统里面的东西都能捕获

    3. 自定义异常

    根据上面类图的结构,如果想要定义一个自己的一样,可以继承Exception。当然也可以自定义一个错误,继承Error就好了。

    相关文章

      网友评论

          本文标题:【JAVA提升】- 关于异常

          本文链接:https://www.haomeiwen.com/subject/gfvmattx.html