Java 基础知识总结:异常处理

来源:互联网 发布:网络散布谣言 案例 编辑:程序博客网 时间:2024/05/21 06:55

异常处理

try-catch以及try-catch-finally

try{

//一些会抛出的异常

}catch(Exceptione){

//处理该异常的代码块

}finally{

//最终要执行的代码

}

终止执行,交由异常处理程序(抛出提醒或记录日志等),异常代码块外代码正常执行。try会抛出很多种类型的异常,多个catch块捕获多钟错误。多重异常处理代码块顺序问题:先子类再父类(顺序不对也会提醒错误),finally语句块处理最终将要执行的代码

 

异常抛出:

需要用到throw和throws

throw:将产生的异常抛出(动作)

throws:在添加方法的时候添加。声明将要抛出何种类型的异常.

案例:public void divide(int one,int two) throwsException{

if(two == 0){

thrownew Exception("两数相除,除数不能为0!!");

else

System.out.println("两数相除,结果为:"+one/two);

}

}

a.能够处理异常:(运用try-catch块处理)

如:try{

divide(5,0);

}catch(Exception e){

System.out.println(e.getMessage());

}

b.无法处理异常:(将异常抛出)

如:public void compute() throws Exception{

....

divide(5,0);

}

自定义异常:

语法:class 自定义异常类 extends 异常类型{

}

Java异常链:

Java中的异常链:

需要用到异常包装,(方便向上抛出异常)

如:接收一个方法抛出的异常并处理。

try{

test();

}catch(自定义异常类 e){

RuntimeExceptionnewExc = new RuntimeException("异常链测试");

newExc.initCause(e);//异常包装

thrownewExc;//向上抛出异常

}

initCause()的作用可以理解成是保存原始的异常,当你想要知道底层发生了什么异常的时候调用getCause()就能够获得原始异常。其实这就形成一个异常链了,这对于你的代码是很有帮助的

 

异常学习总结:

1、处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理

2、在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常

3、对于不确定的代码,也可以加上try-catch,处理潜在的异常

4、尽量去处理异常,切记只是简单的调用printStackTrace()去打印

5、具体如何处理异常,要根据不同的业务需求和异常类型去决定

6、尽量添加finally语句块去释放占用的资源


1 0
原创粉丝点击