10.1 异常类型
10.2 异常处理
异常处理的2种处理方式:捕获异常、抛出异常
格式:① 在可能发生异常的方法后加上throws异常类型
public void test() throws Exception{
}
② 在调用该方法时,再采用捕获异常方式try catch处理或继续throw抛出异常。
10.3 抛出异常
10.3.1 throws
throws是用来声明一个方法可能抛出的所有异常信息;通常在一个方法(类)的声明处通过
throws声明方法(类)可能抛出的异常信息
throws通常不用显式的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法,异常抛出要不有个catch接受,要不就抛给主函数,逐级往上抛,直到有一个接受为止;
用throws抛异常的时候,如果向主调处抛异常的方法是从父类继承或者是从接口实现的,那么覆盖父类方法或者实现接口方法时,如果父类中的原方法或接口中的原抽象方法没有抛异常,只能自己try......catch,但是不能throws抛出异常,catch中可以什么都不写。例如:线程中的run方法不能throws抛异常,里面内容可以用try.......catch自己处理一下。
比如:Public void yundong() throws Exception{ }
10.3.2 throw
throw则是指抛出的一个具体的异常类型;在方法(类)内部通过throw声明一个具体的异常信息(也可以在if( ){ }内声明)也可以catch住一个exception后立刻把它throw出去,不作处理,还可以catch住后,throw new 一个exception。
throw需要用户自己捕获相关的异常,而后在对其进行相关包搜索装,最后在将包装后的异常信息抛出。
比如:(在方法体内) throw new NullPointerException("stackTrace[" + i + "]");
10.4 捕获异常
10.4.1 try{ }catch( ){ }finally{ }
格式:
处理格式1:
try{
可能发生异常的地方
}catch(异常类型 参数名){
发生异常后要 执行的代码(即处理代码)
}
处理格式2:
try{
可能发生异常的地方
}catch(异常类型 参数名){
发生异常后要执 行的代码(即处理代码)
}finally{
必须要执行的代码
}
(其中catch(){ }可以有多个)