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)
*/
public static void exit(int status) {
Runtime.getRuntime().exit(status);
}
功 能: 关闭所有文件,终止正在执行的进程。
exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
测试方法:
// 测试方法
public static void main(String[] args) {
StackType stackType = new StackType();
try {
DATA3 data3 = stackType.PopST(stackType); // 此处调用了 exit 直接关闭了当前现成 之后方法都未执行
}catch (Exception ee){
System.out.printf("sss");
}
}
DATA3 PopST(StackType s){
if(s.top==0){
System.out.printf("栈为空!");
System.exit(0);
System.out.printf("关闭后"); //永远不会执行
}
return (s.data[s.top--]);
}
控制台输出
Connected to the target VM, address: '127.0.0.1:52564', transport: 'socket'
Disconnected from the target VM, address: '127.0.0.1:52564', transport: 'socket'
栈为空!
Process finished with exit code 0