`

System.exit(0)与return的区别

阅读更多
问题:System.exit(0)与return的区别

1.try catch finally 若catch中有return ,finally中代码依然可以执行

参考文献:try catch 中添加 return ,fianlly中的代码是否依然会执行?

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输出:
catch

3.区别
方法returnSystem.exit(n)
main()不能立即终止JVM运行立即终止JVM运行
被调用方法返回方法调用位置,其后的方法可以正常运行终止运行,其后方法不执行


多线程例子:
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)返回最上一层调用
参考文献:
http://bbs.csdn.net/topics/280057476
http://blog.csdn.net/mmllkkjj/article/details/6149043
分享到:
评论

相关推荐

    EmvReader Java Code

    System.out.println("#ERROR# Invalid reader index '"+args[0]+"'. Last valid index is " + (terminals.size()-1) ); System.exit(3); // throw new Exception( "Invalid reader index '"+iReader+"'. Last ...

    java用类实现异常的处理的实例

    import java.util.*; class MyException extends Exception{ String message; MyException(int age){ message=age+"年龄异常";... System.exit(0); } System.out.println(a.getAge()); } }

    vb.NET操作文本

    本文将详细介绍如何使用`System.IO.File`与`System.IO.FileInfo`中的`OpenText`和`AppendText`方法来读取和写入文本文件,并特别关注如何使用`UTF-8`编码。 #### 二、System.IO.File 和 System.IO.FileInfo ##### ...

    安卓开发-返回键退出程序的两种方式.zip

    1. **谨慎使用System.exit(0)**:一般情况下,不建议使用`System.exit(0)`来强制退出应用程序,因为这可能会导致数据丢失,而且Android系统会管理应用的生命周期,正常情况下应该由系统决定何时销毁应用程序。...

    Android 完全退出当前应用程序的四种方法

    首先获取当前进程的PID(Process ID),然后使用`killProcess()`方法杀死进程,最后使用`System.exit(0)`确保Java虚拟机正常关闭。这种方法虽然直接,但可能会影响其他正在运行的组件和服务。 ```java android.os...

    C# 俄罗斯方块游戏

    C#做的俄罗斯方块游戏using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Xml; using System.IO; using System.Security....

    java课程设计 通讯录源代码

    System.exit(0); default: System.out.println("Invalid choice. Please try again."); } } } } ``` #### 6. 运行与测试 完成上述步骤后,可以在IDEA中运行`Main`类来启动通讯录系统。用户可以根据提示进行...

    如何完全退出程序

    通常,开发者会尝试使用`finish()`、`System.exit(0)`或`android.os.Process.killProcess(android.os.Process.myPid())`等方法来关闭应用,但这些方法往往只能结束当前活动的Activity,而无法彻底关闭整个应用,因为...

    退出整个应用程序

    当需要退出时,遍历该列表并调用每个Activity的`finish()`方法来关闭它们,并最终调用`System.exit(0)`来结束进程。 #### 代码详解 ##### SysApplication 类 ```java public class SysApplication extends ...

    linux下system函数的简单分析

    简单分析了linux下system函数的相关内容,具体内容如下 int __libc_system (const char *line) { ...exit 0) == 0; return do_system (line); } weak_alias (__libc_system,

    Java大学教程

    System.out.println("[7] Exit"); System.out.print("Enter choice [1-7]: "); choice = sc.next().charAt(0); System.out.println(); // process choice by calling helper methods switch(choice) { case ...

    Java中finally和return的关系实例解析

    如果在try块中执行了System.exit(0)语句,finally语句将不会被执行,因为JVM已经停止了执行。 Java中finally和return的关系实例解析是非常重要的,掌握它们的关系是Java开发者的必备技能。finally语句用于释放资源...

    【案例6-2】学生管理系统.docx

    System.exit(0); break; default: System.out.println("无效的选择,请重新输入!"); } } } private static void addStudent(List<Student> students, Scanner scanner) { System.out.print("请输入学生学号:...

    黑马程序员之android_点击返回键退出程序的方法

    - 使用`System.exit(0)`可能会导致一些问题,比如未释放资源等。因此,在实际项目中推荐使用`finish()`方法关闭当前Activity。 #### 方法二:点击返回键弹出确认对话框选择退出 这种方法是在用户点击返回键时,弹...

    安卓单击两次返回键退出程序

    System.exit(0); } } Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); isExit = ...

    VB自动关机源码.rar

    Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick If (Me.Visible = False) Then Me.Show() ...

    java_Swing_与socket_做的单线程聊天程序.pdf

    宋",Font.PLAIN,15)); panel .add(button); button .setFont(new Font( " 仿宋",Font.PLAIN,15));... System.exit(- 1 ); } new Thread(new Runnable(){ public void run(){ while ( true ){ try { msg = reader

    Javaswing登录页面的实现

    System.exit(0); } else // 注册 if (str.equals("注 册")) { System.out.println("注 册"); } // 注册 else if (str.equals("忘记密码")) { System.out.println("忘记密码"); } else { System.out....

    最新JAVA编程题全集_50题及答案

    str.getChars(0,str.length(),c,0); if(c[0]>='a'&&c[0]) { c[0]=(char)(c[0]-32); } for(int i=1;i<=c.length-1;i++) { if(c[i]==' ') { c[i+1]=(char)(c[i+1]-32); } } str=new ...

    android 如何完全退出程序

    在Android中,单纯调用`System.exit(0)`或`android.os.Process.killProcess(android.os.Process.myPid())`并不能确保应用程序中的所有Activity都被完全关闭,尤其是当应用程序中有多个Activity栈存在时。这种情况下...

Global site tag (gtag.js) - Google Analytics