Throwable: 有两个重要的子类: Exception(异常)和 Error(错误),二者都是 Java
异常处理的重要子类,各自都包含大量子类。
注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。
除了 RuntimeException 及其子类以外,其他的 Exception 类及其子类都属于可查异常
当在 try 块或 catch块中遇到 return 语句时, finally 语句块将在方法返回之前被执行。
在以下 4 种特殊情况下,finally 块不会被执行:
1)在 finally 语句块中发生了异常。
2)在前面的代码中用了 System.exit()退出程序。
3)程序所在的线程死亡。
4)关闭 CPU。
int b = 20;
try {
System.out.println("try block");
b = b /0;
return b += 80;// return语句先执行,返回前执行finally,再返回。finally中有return,直接返回。
} catch (Exception e) {
System.out.println("catch block");
throw e;// finally中有return,throw不会抛出异常
} finally {
System.out.println("finally block");
if (b > 25) {
System.out.println("b>25, b = " + b);
}
b += 50;
return b;
}