System.exit()方法的详解

       exit()方法属于System类,System这个类是在java.lang包中,我们从API文档中找到这个方法(java.lang包在系统运行中自动加载,不需要通过import这个方法,System这个类是在java.lang包中,java.lang包在系统运行中自动加载,不需要通过import语句导入,所以可以直接调用该方法)。
在这里插入图片描述
从这里我们可以看出关于exit()方法:
       修饰符:static viod
       参数类型:int
       方法描述:终止当前运行的 Java 虚拟机。
接着我们点进去这个方法查看
在这里插入图片描述
终止当前运行的 Java 虚拟机。
参数用作状态代码;按照惯例,非零状态代码表示异常终止。
该方法调用exit类中的方法 Runtime。此方法永远不会正常返回。
该调用System.exit(n)实际上等效于以下调用:Runtime.getRuntime().exit(n)
参数:status - 退出状态。
抛出:SecurityException- 如果安全管理器存在且其checkExit 方法不允许以指定状态退出。

总结一下exit()方法:
语法:
       System.exit(参数);
状态:
       1.正常终止当前运行的Java虚拟机:System.exit(0)
       2.异常终止当前运行的Java虚拟机:System.exit(非零的int型参数)

       虽然exit()方法的参数不同,所以终止的状态也不同,但是效果确实相同的(关闭当前虚拟机),为什么还要有正常终止和异常终止两种状态呢?因为根据使用的场景不同,需要我们自己判断该方法应进行哪种状态的终止。
接下来我们创建一个类命名为test,用try-catch语句举例说明:

package DmException;
import java.util.Scanner;
public class test {
    public static void main(String[] args) {
        try {
            int a=10;
            Scanner read=new Scanner(System.in);
            System.out.print("请输入除数:");
            int b=read.nextInt();
            System.out.println("a/b="+a/b);
            System.exit(0);
        }catch (ArithmeticException e){
            System.out.println("除数不能为0");
            e.printStackTrace();
            System.exit(-1);
        }
    }
}

       在这里我们将正常终止运行的exit()方法放到try语句中,异常终止的exit()方法放到catch语句中,我们运行查看结果:

请输入除数:2
a/b=5

进程已结束,退出代码为 0

       第一次我们将2作为除数输入,成功输入了a/b=5,然后执行System.exit(0); 从而正常退出虚拟机,退出代码为 0

请输入除数:0
除数不能为0
java.lang.ArithmeticException: / by zero
	at DmException.test.main(test.java:12)

进程已结束,退出代码为 -1

       第二次我们将0作为除数输入,将产生一个数字运算异常(除数不能为0),从而执行catch语句,抛出一个异常,提示除数不能为0,输出ArithmeticException 异常,然后执行System.exit(-1); 从而异常退出虚拟机,退出代码为-1
所以我们根据使用的场景不同,选择exit()方法合适的退出状态。

注:本篇文章仅个人见解,若有错误,欢迎指正!

  • 16
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
System.exitJava中的一个方法,用于终止当前正在运行的Java虚拟机。根据传入的参数不同,System.exit可以实现正常终止和异常终止两种状态的退出。当参数为0时,即System.exit(0),表示程序正常退出。而当参数为非零的整数时,即System.exit(非零的int型参数),表示程序异常退出。\[1\]\[2\] 正常终止和异常终止的区别在于使用场景的不同。正常终止一般用于程序按照预期执行完毕后需要停止程序的情况,而异常终止一般用于捕获到异常后需要立即停止程序的情况。例如,在一个if-else判断中,如果程序按照预期执行到最后需要停止程序,可以使用System.exit(0);而如果捕获到异常后需要停止程序,可以使用System.exit(1)。\[1\] 举个例子,假设我们有一个Java类名为test,其中使用了try-catch语句。在try块中进行除法运算,如果输入的除数为0,则会抛出ArithmeticException异常,并执行catch块中的代码。在catch块中,可以输出异常信息并使用System.exit(-1)来异常终止程序。\[2\]\[3\] 总之,System.exit方法可以用于终止当前正在运行的Java虚拟机,根据传入的参数不同可以实现正常终止和异常终止两种状态的退出。具体使用哪种状态的退出取决于使用场景的需求。 #### 引用[.reference_title] - *1* [java终止程序语句总结 System.exit(1)、System.exit(0)、return;break;continue;](https://blog.csdn.net/mingtiandejueze/article/details/83388043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [System.exit()方法详解](https://blog.csdn.net/qq_40474507/article/details/119116506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值