黑马程序员技术交流社区
标题:
finally里的代码怎么样就不执行了?
[打印本页]
作者:
刘晓康
时间:
2012-3-30 17:11
标题:
finally里的代码怎么样就不执行了?
try
{
代码
}
catch (异常对象)
{
代码
}
finally
{
代码
}
有什么方法可以不让finally中的代码执行吗?
作者:
何万县
时间:
2012-3-30 17:17
不可以的,除非程序退出
作者:
许飞翔
时间:
2012-3-30 17:25
可以用system.exit(0); 语句
或者退出系统(关闭java虚拟机)
作者:
方江
时间:
2012-3-30 17:31
finally是最终执行。当然,你抛的如果是循环多线程然后死锁就执行不到了,直接挂掉。
finally是无论条件是否符合,抛没抛异常都会执行。当然你可以不写finally。也可以抛的。不写不就完了、
作者:
Kristy_Li
时间:
2012-3-30 17:32
可以在try语句或catch语句块中使用System.exit(0)语句退出!至于关闭虚拟机,一般都不会采用
作者:
newlaw2013
时间:
2012-3-30 17:43
本来是要发到博客中去的,看到楼主的问题与try知识点还是有些联系的,希望能帮你加深这个知识点的认识。
/*
*程序运行的结果是1,因为try中已经return了x;finally虽然最后执行了语句,但因其中
没有返回x的值,所以主函数拿到的是try中返回的值,即1.
*/
public class TryDemo {
public static void main(String[] args){
System.out.println(new TryDemo().test());
}
static int test(){
int x = 1;
try
{
return x;
}
finally
{
++x;
//return x;
}
}
}
作者:
阿牛
时间:
2012-3-30 18:05
这种方法可以,在try或者catch中加上一句System.exit(0);
class testDemo
{
public static void main(String[] args)
{
try
{
System.out.println(3/0);
}
catch (Exception e)
{
System.out.println("here is a exception");
System.exit(0);
}
finally
{
System.out.println("here is the location after try-catch");
}
}
}
作者:
阿牛
时间:
2012-3-30 18:10
Finally语句是为异常处理事件提供的一个清理机制,一般是用来关闭文件或释放其他系统资源。作为try-catch-finally结构的一部分,可以没有Finally语句,如果存在Finally语句,不论try块中是否发生异常,是否执行过catch语句,都执行finally语句。
所以,如果在try或catch中让程序直接退出的话,那就违背java设计Finally的初衷了。
作者:
胡川
时间:
2012-3-30 18:11
finally是不管什么样的情况都会执行它后面的代码块的,return的话也会执行的,除非上面代码快遇到
System.exit(0),才会直接退出,不执行finally的语句
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2