Java学习——异常体系

异常:

异常就是代表程序出现的问题

Java.lang.Throwable:

1.Error:代表系统级别的错误,属于严重问题,开发人员无需管理

2.Exception:叫做异常,代表程序可能出现的问题,通常会用Exception以及它的子类来封装程序出现的问题

        RuntimeException及其子类:编译阶段不会出现异常提醒,编译阶段无需处理运行时出现的异常

        编译时异常:编译阶段就会出现的异常,需要在编译阶段进行处理

异常的作用:

       作用1:异常是用来查询bug的关键参考信息

        作用2:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况

        在对应位置throw new RuntimeException()

异常的处理:

        1.JVM默认的处理方式:把异常的名称,异常的原因以及异常出现的位置等信息输出在控制台,程序停止执行。

        2.捕获异常:           

try {
    可能出现异常的代码;
} catch(异常类名 变量名){
    异常的处理代码;
};

        可以让程序继续往下执行而不会停止。如果出现了异常,会拿着这个异常和catch小括号中的异常对象进行对比,看括号中的变量是否可以接收这个对象,如果能被接收,就表示该异常被捕获,执行catch里面对应的代码,当catch里面的代码全部被执行后,继续执行try...catch体系下面的其他代码

1.如果try中没有遇到问题:会把try中里面的代码全部执行完毕,而不执行catch里面的代码,只有当出现了异常时才会执行catch中的代码

2.如果try中可能会出现多个问题:会写多个catch与之对应,如果要捕获多个异常,而且这些异常存在父子关系,那么父类异常一定要写在下面

3.如果try中遇到的问题没有被捕获:交给虚拟机进行处理,采取虚拟机默认的处理方法

4.如果try中遇到了问题,那么try下面的代码还会执行吗?:下面的代码不会执行,会跳转到对应的catch中,执行catch里面的语句体。

Throwable成员方法:

        public String getMessage():返回此throwable的详细消息字符串

        public String toString():返回此可抛出的简短描述

        public void printStackTrace():把异常的错误信息输出在控制台,仅仅打印信息,而不会停止虚拟机的运行

抛出处理:

        throws:写在方法定义处,表示声明一个异常,告诉调用者使用本方法可能会有哪些异常

                public void 方法名() throws 异常类名1,异常类名2,...{}

        throw:  写在方法内,结束方法,手动抛出异常对象,交给调用者,方法中下面的代码不再执行了

                throw new Exception对象

自定义异常:让控制台的报错信息更加见名知意

        1.定义异常类

        2.写继承关系:

                运行时异常继承RuntimeException,表示由于参数错误导致的问题

                编译时异常继承Exception

        3.空参构造

        4.带参构造

你可能感兴趣的:(Java学习,java,学习,开发语言)