Java作为类语言有着和C相似的异常处理体系,而Java中异常都是派生于Throwable,其结构如下图

Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误。 应用程序不应该抛出这种类型的对象。 如果出现了这样的内部错误, 除了通告给用户,并尽力使程序安全地终止之外, 再也无能为力了
IOException,编译器会要求我们try catch 或throws处理,本质是客观因素造成的问题
实例try-catch-finally的执行过程

finally 里的return n 是注掉的
此时输出为:
执行了
3
小结:Class.forName(“”)会抛出异常,不执行下面语句跳转到catch代码块中,最后执行finally, 而finally 是在return返回值前执行的
实例-2
还是上图,但是把finally中的return打开
输出结果为:
执行了
4
小结:简单的记住,有finally 以finally中的return 为最终返回值
总结
当类中方法有try finally 时,在底层调用方法时,return 要等到try-finally整体执行结束才返回数据并杀死方法。