6

任何人都可以与我分享两者之间的区别,System.exit(0)如果System.exit(-1)您举例说明会很有帮助。

4

4 回答 4

16

这只是进程退出代码方面的差异。因此,如果要根据退出代码采取行动(其中 0 通常表示成功,非零通常表示错误),您可以控制他们看到的内容。

以这个小型 Java 程序为例,它使用命令行参数的数量作为退出代码:

public class Test {    
    public static void main(String[] args) throws Exception {
        System.exit(args.length);
    }
}

现在从 bash shell 运行它,这&&意味着“如果第一个命令成功,则执行第二个命令”我们可以:

~ $ java Test && echo Success!
Success!

~ $ java Test boom && echo Success!
于 2011-08-04T07:28:47.280 回答
3

System.exit(0) 表示正常退出程序。但 System.exit(-1) 表示退出可能是由于某些错误。除零以外的任何数字都表示异常退出。

于 2011-08-04T07:30:46.587 回答
0

System.exit(int) 的参数是程序的返回值,可以在批处理作业中进行评估(通常用于控制台程序)。按照惯例,除 0 以外的每个值都表明出现问题。

于 2011-08-04T07:30:54.123 回答
0

如果您在 Linux/Unix 中运行 Java 程序,您可以使用echo $?命令检查结果。这就是为什么打电话很重要的原因System.exit(0)(如果你不这样做,这是为你做的)如果一切都很好,System.exit(non-zero)否则。

于 2011-08-04T07:31:52.723 回答