System.exit(0)与return的区别
程序员文章站
2022-07-13 23:33:38
...
问题:System.exit(0)与return的区别
1.try catch finally 若catch中有return ,finally中代码依然可以执行
参考文献:[url=http://mingyundezuoan.iteye.com/admin/blogs/2207675]try catch 中添加 return ,fianlly中的代码是否依然会执行?[/url]
2.try catch finally 若catch中有System.exit(0),finally中代码不可以执行
Console输出:
[b]catch[/b]
3.区别
[table]
|方法|return|System.exit(n)|
|main()|不能立即终止JVM运行|立即终止JVM运行|
|被调用方法|返回方法调用位置,其后的方法可以正常运行|终止运行,其后方法不执行|
[/table]
多线程例子:
4.总结
(1)在main()中的区别:
当用return;返回时,main()并不能立即运行结束,而用System.exit(数值);时,main()将立即无条件的结束
(2)system.exit(0)表示程序正常退出,system.exit(1)表示非正常退出,都没有返回值。return则返回至调用该方法的地方,如果后面还有代码则继续执行
(3)return返回上一层调用;System.exit(n)返回最上一层调用
参考文献:
[url]http://bbs.csdn.net/topics/280057476[/url]
[url]http://blog.csdn.net/mmllkkjj/article/details/6149043[/url]
1.try catch finally 若catch中有return ,finally中代码依然可以执行
参考文献:[url=http://mingyundezuoan.iteye.com/admin/blogs/2207675]try catch 中添加 return ,fianlly中的代码是否依然会执行?[/url]
2.try catch finally 若catch中有System.exit(0),finally中代码不可以执行
public static void main(String[] args) {
try{
int result = 0/0 ;
System.out.println(result);
}catch(Exception e){
System.out.println("catch");
System.exit(0);
}finally{
System.out.println("finally");
}
System.out.println("after finally");
}
Console输出:
[b]catch[/b]
3.区别
[table]
|方法|return|System.exit(n)|
|main()|不能立即终止JVM运行|立即终止JVM运行|
|被调用方法|返回方法调用位置,其后的方法可以正常运行|终止运行,其后方法不执行|
[/table]
多线程例子:
new myThread().start();
if(条件为真) return;
//此处的return并不能立即结束main。等待线程myThread
//若换成System.exit(数值);则立即无条件地结束。
//其它代码
4.总结
(1)在main()中的区别:
当用return;返回时,main()并不能立即运行结束,而用System.exit(数值);时,main()将立即无条件的结束
(2)system.exit(0)表示程序正常退出,system.exit(1)表示非正常退出,都没有返回值。return则返回至调用该方法的地方,如果后面还有代码则继续执行
(3)return返回上一层调用;System.exit(n)返回最上一层调用
参考文献:
[url]http://bbs.csdn.net/topics/280057476[/url]
[url]http://blog.csdn.net/mmllkkjj/article/details/6149043[/url]
上一篇: return、exit、_exit的区别