ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### 异常处理总结 * **try 块:**用于捕获异常。其后可接零个或多个 catch 块,如果没有 catch 块,则必须跟一个 finally 块。 * **catch 块:**用于处理 try 捕获到的异常。 * **finally 块:**无论是否捕获或处理异常,finally 块里的语句都会被执行。当在 try 块或 catch 块中遇到 return 语句时,finally 语句块将在方法返回之前被执行。 **在以下 4 种特殊情况下,finally 块不会被执行:** 1. 在 finally 语句块第一行发生了异常。 因为在其他行,finally 块还是会得到执行 2. 在前面的代码中用了 System.exit(int)已退出程序。 exit 是带参函数 ;若该语句在异常语句之后,finally 会执行 3. 程序所在的线程死亡。 4. 关闭 CPU。 **注意:**当 try 语句和 finally 语句中都有 return 语句时,在方法返回之前,finally 语句的内容将被执行,并且 finally 语句的返回值将会覆盖原始的返回值。如下: ~~~ public static int f(int value) { try { return value * value; } finally { if (value == 2) { return 0; } } } ~~~ 如果调用`f(2)`,返回值将是 0,因为 finally 语句的返回值覆盖了 try 语句块的返回值。