关于异常的总结
public static void main(String[] args) {ErrorDemo01 er1 = new ErrorDemo01();System.out.println(er1.sum(10000));}public long sum(long a){if(a==1){return 1;}else{return sum(a-1);}}
public static void main(String args[]) throws Exception{ExceptionDemo01 ed1 = new ExceptionDemo01();ed1.throwDemo(-5);System.out.println("可执行后面的程序!");}public void throwDemo(int t) throws Exception{if(t<=0){throw new Exception("t必须为正数!!");}}
在选择的时候可以有以下几点考虑:
1、? 将能处理的异常在本方法内就用try…catch…捕获,实在不能解决的异常再throws抛给调用者多层调用的话可能将问题复杂化。
2、? 如果希望出现异常的时候还能执行后面的程序则将异常try…catch…,如果希望出现异常时,程序就终止的话,就使用throws抛出异常。
?? 在上面一个例子中如果将t值设为正数,则程序会继续执行,
运行结果显示为:
?
?
可执行后面的程序!?
?
?
最后引用几则异常处理的原则和技巧:
写道1、避免过大的try块,不要把不会出现异常的代码放到try块里面,尽量保持一个try块对应一个或多个异常。2、细化异常的类型,不要不管什么类型的异常都写成Excetpion。
3、catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。
4、不要把自己能处理的异常抛给别人。
5、不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。
?