System.exit(0) 与 System.exit(1) 在运行上有何区别

疑问

看到很多博客上说,System.exit(status) ,status 为 0 就是正常退出,status 为 1 是非正常退出。

真的是这样吗?

代码测试

public class Test {
    public static void main(String[] args) {
        try{
            throw new RuntimeException();
        }catch (Exception e){
            System.exit(0);
        }finally {
            System.out.println("正常退出");
        }
    }
}

假如 System.exit(0) 是正常退出,是不是应该执行 finally 代码块呢?
实际上是没有任何输出的。

源码解释

源码里对这个方法是这么说的:
在这里插入图片描述
立即停止 JVM。参数用作状态码;按照惯例,非零值表示非正常终止。

也就是说,这个状态码,是程序员写给程序员看的;对项目的运行来说,没有区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值