(六)Java入门--异常

xiaoxiao2021-02-28  58


一、异常概念

1、异常:在运行时期发生的不正常的情况。 2、异常类:描述不正常的类 3、将各个异常类的共性向上抽取,形成异常体系。 4、最终不正常的情况就分为两个类。 5、一个超类Throwable,下面有两个子类Error、Exception,每个子类下面还有很多子类。(一个爷爷,有两个儿子,每个儿子还有许多小孩。) 6、Throwable(可抛性):将问题抛出让调用者知道并处理。凡是throw/throws关键字可以操作的类或对象就具有可抛性。 7、Error(一般不可处理) 和 Exception(可以处理的)。(Error:由jvm抛出的严重性问题,一般不针对性修改,直接修改程序。)

二、异常的分类

Java编译器先检查语法错误,再进行异常等问题检测。 1、编译时异常(可查异常):Exception中的子类(除去RuntimeException体系); 这种问题希望在编译时进行检测,进行对应的处理方式(必须使用try-catch捕获或者throws抛出)。 2、运行时异常(不可查异常之一):RuntimeException和其子类。 这种问题无法让功能进行继续,这种问题编译器不会检查,运行时让调用者调用程序强制停止,让调用者修改程序。不需要throws进行声明。也不需要捕获,但是可以进行捕获。 总体来说,Java规定:允许忽略不可查的RuntimeException和Error。

三、自定义异常

1、创建自定义异常类。 2、在方法中通过throw关键字抛出异常对象。 3、如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。 4、在出现异常方法的调用者中捕获并处理异常。

四、异常捕获

1、try catch(多个) finally try { //待检测部分 } catch(创建异常类对象)//多个catch的情况,首先从第一个匹配,若匹配成功一个,其他不再匹配,直接跳出。 { //对异常进行处理 } catch(创建异常类对象) { //对异常进行处理 } ………….多个catch finally //通常用于关闭(释放)资源。 { //一定要执行的 //就算catch里面有return也会执行;但是当有System.exit(0);会退出虚拟机,不会执行了。 } 2、try finally 异常不处理,用于资源关闭。

五、异常转换与继承注意

1、将一个内部异常转化为对方可以理解的异常。也可以叫做异常封装,对外不暴露出内部的异常,转换出外面可以处理的异常。 2、子类覆盖父类只能抛出父类异常或者子类或者子集。如果父类的方法没有抛出异常,子类一定不能抛,只能try。

转载请注明原文地址: https://www.6miu.com/read-2631825.html

最新回复(0)