java的try catch语句问题
try
{
语句1;
语句2;
语句3;
}
catch
{
语句4;
}
如果语句1有错则跳到语句4执行,那么处理完语句4后,语句2、3还能否被执行?
肯定不会啦。
说一下try catch 和finally到底怎么回事!
try catch 成对出现的,一个try就一定要有catch,被try包裹的代码说明,如果这些代码中只要抛出异常的话,就会停止当前的代码运行,而跳到catch中,对于异常进行处理。
而finally呢,他是一个比较特殊的轮漏东西,finally中的代码无论出现说明状况都会运行到。即使出现异常。所腊宴烂以finally一般都是处理对资源的释放等操作。
try{
go(); //假设在调用go方法的时候发生的异常
return “hello”; //这个return语句都是无法执行到的。
}catch(Exception e){
System.out.println("发生的异常了!");
}finally{
System.out.println("这里释放数据库连接!");
}
可以看到,当发生异常的时候,发生异常一下的代码都是无法执行到的。运行会跳到catch中,处理这个异常,之后进入finally中。
try{
go();
return “hello”; //这个return语句都是无法执行到的。
}catch(Exception e){
System.out.println("发生的异常了!");
}finally{
System.out.println("这里释放数据库连接!");
}
同样的代码,try中没有发生异常,所以catch中的代码是执行不到的,但是看到go方法下面的那个return了没,那么finally中的代码还会执行到吗?
答案是:能,一定会执祥友行到。即使try中已经有了return。
你可以试一试!
现在稍稍明白了些吧!
不会。因为已经跳出try{}来到执行catch{}内的语句4了。
不会,你要是想要语句2和3执行,就加一个finally{code2;code3;}
这是编程常识,不执行!