System.exit(0)和System.exit(1)分别表示正常退出和异常退出。
可是什么才是正常退出,什么才是异常退出呢?
比如执行读取文件的时候,文件找不到,是正常退出还是异常退出呢?
请大家帮我举几个例子。谢谢~!

解决方案 »

  1.   

    非0都是非正常退出,系统会需要这个返回值。如果你的程序是出现异常,需要退出,你就用非0值。
    正常执行到最后,就exit(0)
      

  2.   

    很少用System.exit,宕机都不知道咋回事.
    /**
         * Terminates the currently running Java Virtual Machine. The
         * argument serves as a status code; by convention, a nonzero status
         * code indicates abnormal termination.
         * <p>
         * This method calls the <code>exit</code> method in class
         * <code>Runtime</code>. This method never returns normally.
         * <p>
         * The call <code>System.exit(n)</code> is effectively equivalent to
         * the call:
         * <blockquote><pre>
         * Runtime.getRuntime().exit(n)
         * </pre></blockquote>
         *
         * @param      status   exit status.
         * @throws  SecurityException
         *        if a security manager exists and its <code>checkExit</code>
         *        method doesn't allow exit with the specified status.
         * @see        java.lang.Runtime#exit(int)
         */
      

  3.   

    jFresH_MaN(十一月的萧邦-夜曲) 正解
      

  4.   


    把1 放到异常处理段,自然可以给个异常退出,如果你还要继续运行直到 任务完成,那就是按你的愿望完成,就是正常退出。
    另: 有人说除非main 不要随便用  因为这样做就不会任何代码机会截断退出,
    一个类似后台服务的程序 不应该因为某一个库模块决定要退出就退出。
      

  5.   

    看看 liu_you(滴水藏海) 回复的,
    我感觉你就明白了
      

  6.   

    看了上面的回答,然后我做了一下测试,不管是System.exit(0)还是System.exit(1)都会马上退出程序 ,对于有些回答的情况根本就不可能噢。
    比如:回复人: leniz(leniz) 
    自然可以给个异常退出,如果你还要继续运行直到 任务完成 回复人:jFresH_MaN(十一月的萧邦-夜曲)
    正常执行到最后,就exit(0)
      

  7.   

    System.exit(1)或其他的nonzero的参数,是最牛的退出。