异常继承图
异常处理
try块的范围就是体现在异常表行记录的起点和终点。JVM 在 try 中的代码区间内如有异常抛出的话,就会在当前栈桢的异常表中,找到匹配类型的异常记录的入口指令号,然后跳到该指令处执行。异常指令块执行完后,再回来继续执行后面的代码。JVM 按照每个入口在表中出现的顺序进行检索,如果没有发现匹配的项,JVM 将当前栈帧从栈中弹出,再次抛出同样的异常。当 JVM 弹出当前栈帧时,JVM 马上终止当前方法的执行,并且返回到调用本方法的方法中,但是并非继续正常执行该方法,而是在该方法中抛出同样的异常,这就使得 JVM 在该方法中再次执行同样的搜寻异常表的操作。
RuntimeException
运行时抛出的异常 比如 : 空指针异常 类型转化异常
CheckedException
强制调用方对该异常进行处理 如 FileNotFoundException
解决异常步骤
1 要仔细观察错误的现象 不要随意问人
2 要仔细思考问题会出在哪些环节
3 定位错误
4 解决不掉问百度
自定义异常
Exception 如果自定义类继承这个 编译的时候就得抛出异常
RuntimeException 如果自定义类继承这个 运行的时候抛出异常