解释 try...catch...finally 的具体用法:用于捕获、处理异常并确保代码块执行。
1、 JVM默认如何处理
2、 将异常的名称、原因及位置等信息输出至控制台,但程序会终止,无法继续执行后续代码。
3、 自行解决
4、 自行编写处理代码,后续程序即可正常运行。
5、 (try外部的代码,即使发生异常也会继续执行)
6、 在*方法*中声明自身无法处理的情况,告知调用者此处可能存在异常。
7、 请留意以下事项:
8、 尽量减少try中的代码量,因为执行try时,虚拟机会为其中的内容重新分配内存。
9、 catch块中需包含内容,哪怕只是一个简单提示信息。
10、 try...catch...finally结构的变体形式
11、 finally用于释放资源,常见于IO流和数据库操作中。
12、 这样做的目的是为了释放资源。
13、 finally:用于捕获异常后的最终处理。
14、 finally块中的语句总会执行,用于释放资源等操作,仅在JVM退出时例外。
15、 注意:若JVM在执行到finally之前退出,則无法执行finally块。
16、 图一
17、 如果 catch 块中有 return 语句,finally 块中的代码还会执行吗?这是许多开发者关心的问题。
18、 会,请问是在返回前还是返回后?
19、 应该是在中间部分,更确切地说,是偏前的位置。
20、 图二


21、 final、finally 和 finalize 的区别是什么?
22、 final表示最终,可修饰类、成员变量和方法,表明不可修改或重写。
23、 最终类,此类无法被继承。
24、 将变量声明为常量以固定其值。
25、 使用final修饰方法,该方法不能被重写。
26、 finally 是异常处理结构的一部分,用于确保资源释放,无论是否发生异常都会执行。
27、 通常代码必然执行,但若在触及 finally 前 JVM 退出,则属于特殊情形。
28、 finalize是Object类中的方法,用于垃圾回收时执行特定清理操作。