Java程序异常处理的特殊情况
1.不能在finally块中执行return、continue等语句,否则会“吃掉”异常;
2.如果try and catch中有return语句,请在执行return之前执行finally块。
请仔细看下面的例子:
以下是引用:
public class try test {
public static void main(string[]args){
try {
system . out . println(try test . test())//返回结果为真。它没有exception
} catch(exception one){
system . out . println("来自main的异常");
e . printstacktrace();
}
doThings(0);
}
public static boolean test()抛出异常{
try {
抛出新的异常(" Something error ");//第一步。抛出异常
} catch(异常e) {//步骤2。被捕获的异常匹配(声明类或其父类)并进入控制块
system . out . println(" exception from e ");//第三步。Print
返回false//第五步。返回前将控制权转移到finally块,执行后再返回(这一步是吃的,不执行)
} finally {
return true;//第四步。控制转移,直接回去,吃异常
}
public static void dots(int I)
{
try
{[/br
}
int t = 100/I;
system . out . println(t);
} catch(Exception ex)
{
ex . printstacktrace();
}
finally
{
system . out . println(" finally ");
}
}
}
0条评论