try-catch-finally

public class Test
{
 public static void main(String[] args)
 {
  int a=1;
  try
  {
   a=a/0;
  }catch(Exception e)
  {
   System.out.println(“catch”);
   return;//当return时,finally中的语句会执行。
   //System.exit(0);//若用上这句,finally中的语句不会执行。直接返回,退出程序。
  }
  finally //当没有System.exit(0);时,无论是否发生异常它都会执行。
  {
   System.out.println(“finally”);
  }
 }
}
注:   try-catch-final块的顺序不能调换。

System.exit();

这个方法是用来结束当前正在运行中的java虚拟机。如何status是非零参数,那么表示是非正常退出。

  1. System.exit(0)是将你的整个虚拟机里的内容都停掉了 ,而dispose()只是关闭这个窗口,但是并没有停止整个application exit() 。无论如何,内存都释放了!也就是说连JVM都关闭了,内存里根本不可能还有什么东西
  2. System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序
  3. System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点:return是回到上一层,而System.exit(status)是回到最上层
原文地址:https://www.cnblogs.com/Yxxxxx/p/6853919.html