异常
体系结构
Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所以异常的超类;异常分为两类Error和Exception
Error类对象由java虚拟机生成并抛出,Error是程序无法控制和处理的,出现时,JVM会选择终止异常。Exception可以被程序处理
检查异常与不受检查异常:不受检查异常为编译器不要求强制处理的异常,检查异常为编译器要求必须处理的异常
异常处理机制
抛出异常后会线在堆上创建(new)一个异常对象;当前执行环境被终止,并从当前环境中弹出对异常对象的引用,此时异常处理机制接管程序,找到一个恰当的地方(即异常处理程序或异常处理器)来继续执行程序
运行时异常由java运行时自动抛出,允许应用程序忽略运行时异常。对于检查异常,必须声明将要抛出的异常。
异常处理关键字
在有多个catch子句的异常程序中,捕获的异常类要先子类后父类来编写,否则子类的异常捕获可能会被屏蔽。
finally创建的代码块在try/catch块完成之后另一个try/catch块出现前执行
finally会在try/catch返回之前执行
每个try语句至少需要一个catch或finally子句