2019-08-08
高级编程---- 异常体系
什么是异常 :
不正常,Java程序在运行或者编译的过程中所出现的问题,称之为异常,也称之为bug ;
异常: 【Exception】:程序在运行的过程中 产生不正常的现象,但是通过相关手段修复之后(定义异常的处理), 不影响程序的正常执行;
运行时异常 【非受检异常】 : 在编译期 不能别检测到,但是会在运行期发生;
在java 的异常体系中,RuntimeException 类及其子类,都是运行时异常,这类异常可以不抛出异常;
编译时异常 【受检异常】: 在编译期间就能够被发现; java 异常体系中 除了了RuntimeEecption 及其子类,其他都是编译时异常类;
错误 【error】 : 程序在运行的时候所出现的 特别重大的异常, 无法修复 导致无法运行;
他们两个的老大 Throwable(类) : 所有异常和错误的父类,自定义的类只有继承了此类,才能作为异常类进行使用;
处理异常
1. 将异常在方法上声明: 【throws】 关键字,声明给方法的调用者看,提示可能会出现异常;
2. 使用try {} catch() [finally]{} 可以终止程序的执行; 将有可能发生的代码块 包裹起来;
try 存放 有可能的异常的代码块; 当java 代码发生异常之后: jvm 会创建一个关于此类异常类的对象;
catch 里面 需要做针对性的处理: Exception ----> ArrylistException 可以有多个catch 处理这个异常;
catch 中的 只有在异常的情况下,才会执行; return a++ ; 是先 执行a++ 然后再return ;
final的 不管怎么样都会执行;
运行时异常 不需要显示的处理(就是抛出) jvm 会一步一步的向上抛出,直至将异常抛给此类的执行者;
对于受检异常,在编写代码的时候,就必须做针对性的处理; 继续一直抛可以或者使用try - cath 代码块处理该异常;
产生了一个异常 就会开始处理, 其他的就不会再异常;
自定义异常 : 只用自定义了 才可以抛出;
自定义的类 继承了Exception类之后 ,变成受检异常;
自定义的类 继承Runception 类之后,会变成 非受检异常;
方式: 1. 继承 Throwable 类;
2. 继承 Exception 类;
异常分类
异常断言