java异常处理

(一).如果一个try块后有多个catch块来捕获不同的异常。而且两个异常存在继承关系,应该把子类异常放在你类异常的前面来捕获。

PS:Exception e一般要放到后面

(二).最好分开try{}catch{}!

因为只要try语句中发生异常,就回在catch块中找相匹配的捕捉,捕捉之后将不执行程序,也就是说如果有一个数组越界异常在前,又跟了一个0作为除数的异常,程序捕获了第一个后就不会捕捉第二个了

举例说明:

Java code//假如XxException 和YyException 都可以捕获ZzException

try {

1M.....//可能抛出XxException 和 ZzException

2N.....//

3P.....//可能抛出YyException 和 ZzException

}catch([color=#FF0000]XxException [/color]e1){

A.......

//执行A代码

}catch([color=#FF0000]YyException [/color]e2){

B.......

}

//如果1发生了ZzException 则不会执行2,3直接执行A代码


(三)关于try、catch、finally语句块中含有return语句的几点说明:

1、第一种情况:try块有return语句,catch块没有return,函数末尾也没有return:

在return语句之前如果出现异常的话,那么return语句根本没有机会得到执行,编译器会认为缺少return语句。所以应该在catch块中加入return语句或者在finally块中加入return语句,还可以在函数末尾加入return语句

2.第二种情况:如果try块中有return语句,那么先执行return语句,再执行finally语句,然后将结果返回,也可以说return语句执行了两次,一次在finally之前,一次在finally之后,但是返回的确是第一次执行的值


你可能感兴趣的:(java,java)