• Error
    • VirtualMachineError
    • AssertionError
  • Exception
    • IOException(必须处理)
    • SQLException(必须处理)
    • RuntimeException(VM接管)
      • ArithmeticException
      • NullPointerException
      • NumberFormatException
      • IllegalArgumentException
      • IndexOutOfBoundsException
      • NoSuchElementException
      • ClassCastException
      • ArrayStoreException

任何执行try或catch中的return语句前,(如果有finally)都会先执行finally语句。如果finally中有return语句,那么程序就return了,finally中的return一定会被return

如果try语句里有return,那么代码的行为如下:

  1. 如果有返回值,就把返回值保存到局部变量中
  2. 执行jsr指令跳到finally语句里执行3.执行完finally语句后,返回之前保存在局部变量表里的值