-
处理异常涉及到两个方面
- 抛出异常
- 处理异常
-
抛出异常的两种方式
- 显性抛出异常:在程序同使用throw关键字,人为的把异常抛出
- 隐形抛出异常:抛出的主体是JVM,在运行时遇到无法处理的异常情况。
-
处理异常涉及的代码块及作用?
- try:用于标记需要进行异常监控的代码
- catch:
- 声明了需要捕获的异常类型
- 定义了异常类型所对应的异常处理器
- finally:
- 用来声明一段必须要执行的代码
- 目的是进行一些清理工作。
- 一旦异常被引发,程序控制由try块转到catch块,一旦执行了catch语句,程序控制从整个try/catch机制的下面一行继续。
JVM(Java虚拟机)是如何捕获异常的
java虚拟机构造异常实例非常昂贵。虚拟机需要生成该异常的栈轨迹。该操作会逐一访问当前线程的 Java 栈帧,并且记录下各种调试信息,包括栈帧所指向方法的名字,方法所在的类名、文件名,以及在代码中的第几行触发该异常。