java.lang.Throwable:
Throwable类 是Error 和Exception的父类
Error(错误):是程序无法处理的错误,JVM中出现的错误。
Exception(异常):是程序本身可以处理的异常。
Exception包括 RuntimeException运行时异常 和 checked exception已检查异常/编译时异常
try-catch-finally:
先执行try{}块,在try{}块、catch{}退出前,执行finally{}块
try语句在返回前,将其他所有的操作执行完,保留好要返回的值,而后转入执行finally中的语句,而后分为以下三种情况:
情况一:如果finally中有return语句,则会将try中的return语句”覆盖“掉,直接执行finally中的return语句,得到返回值,这样便无法得到try之前保留好的返回值。
情况二:如果finally中没有return语句,也没有改变要返回值,则执行完finally中的语句后,会接着执行try中的return语句,返回之前保留的值。
情况三:如果finally中没有return语句,但是改变了要返回的值,这里有点类似与引用传递和值传递的区别,分以下两种情况,:
1)如果return的数据是基本数据类型或文本字符串,则在finally中对该基本数据的改变不起作用,try中的return语句依然会返回进入finally块之前保留的值。
2)如果return的数据是引用数据类型,而在finally中对该引用数据类型的属性值的改变起作用,try中的return语句返回的就是在finally中改变后的该属性的值。
throws和throw:
throws:方法声明异常
public void method1() throws Exception1,Exception2{
}
main()方法throws异常,由JVM处理
throw:代码抛出异常
throw new Exception("xxx异常");