——Error
——Exception
Error类对象(如动态连接错误等),由JVM生成并抛弃,通常不处理;
Exception类对象是Java程序处理或抛弃的对象。Java编译器要求Java程序必须捕获或声明所有的非运行时例外,但对运行时例外可以不做处理。
finally语句
无论怎样都会执行,哪怕try catch中有返回语句
throws语句
函数头 标明该可能抛出的各种异常。
throw语句
函数体 抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到(其实也写不了语句)
3. try-catch程序块的执行流程以及执行结果
-->如果E能catch到,第一个catch块执行;如果该catch块由于原因R中止,结果=completes abruptly。
-->如果E没catch匹配,结果=completes abruptly。
在try或者catch中return false了,而在finally中又return true,结果是true,因为try或者catch中的return语句只是转移控制权的作用。
3.5 如何抛出异常
第一种方式:直接在函数头中throws SomeException
第二种方式:使用try/catch,在catch中进行一定的处理之后(如果有必要的话)抛出某种异常。
catch (Exception e){
System.out.println("testEx2, catch exception");
Throw e;
}
第三种方法: throw new Exception("aaa");
4.1 异常结束(complete abruptly)”。通常有一个相关联的原因(associated reason),通常也就是抛出一个异常V。
5. finally语句中写return语句会导致我们的throw e被抛弃。