异常高级
*****************************异常笔记********************
****什么是异常
什么是异常处理机制
异常处理机制的5个关键字以及各自的特点
4 try catch finally throw throws
可以声明多个。
5.异常链
6自定义异常类
集成runtimeexception
throwexception
throwsexception
异常的概念:
异常是指程序在运行过程中所发生的不正常的
异常:程序在运行过程中发生由于外部问题(如硬件错误、输入错误)等导致的程序异常事件。
捕获:
通过try…catch语句进行捕获异常。
通过throw抛出异常,throws向上一级调用方法抛出异常。
异常的常见例子:有内存分配不足、数组下标越界、运算溢出或除数为零。
异常都是从类Throwable类派生出来的,而Throwable类是直接从Object类继承而来,可见Java对异常处理的重视程度。
Error:系统内部错误,这类错误由系统进行处理,程序本身无需捕获处理;
Exception(可以处理的异常)
RuntimeException:可以捕获,也可以不捕获的异常。
继承Exception的其他类:必须被捕获的Exception,查阅API帮助中方法后面会有说明此方法抛出哪些异常,这些异常必须被捕获。
在你的程序在某一个地方出现了一个异常
try
catch
finally
throw
throws
Throwable 父类
受查异常(checked Exception)在程序编译期间产生的异常!
在你的程序在某一个地方出现了一个异常
try
catch
finally
throw
throws
Throwable 父类
受查异常(checked Exception)在程序编译期间产生的异常!
运行异常(RuntimException)
try必须和catch或finally
try(){
//只放有可能出现异常的地方
return;
}
Apprithmiter算数异常
throw 和throws
throw 一定要小于或者是等于
checked exception(受查异常),也称非运行时异常(运行时异常以外的异常就是非运行时异常),由代码能力之外的因素导致的运行时错误。java编译器强制程序员必须进行捕获处理,比如常见的有IOExeption和SQLException。如果不进行捕获或者抛出声明处理,编译都不会通过。
异常的使用:
Try
1.try块中放可能发生异常的代码;
02.try不能单独使用,必须和catch或者finally中的其中一个联合使用;
03.如果执行完try并且不发生异常,则接着去执行finally代码块和finally后面的代码;
如果没有finally代码块,则直接执行catch之后的代码;
04.如果发生异常,则尝试去匹配对应异常的catch代码块。
Catch:
01.每一个catch块用于捕获并处理一个特定的异常,或者这异常类型的子类。
02.catch后面的括号定义了异常类型和异常参数。
03.如果异常与之匹配且是最先匹配到的,则虚拟机将使用这个catch块来处理异常。
04.可以书写多个catch代码块!顺序必须是按照异常类型从小到大!
自定义异常:
属于自定义异常