Skip to content

Commit ddbb405

Browse files
committed
Update Java基础知识->异常处理
1 parent 9f1fcc2 commit ddbb405

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

Java相关/Java基础知识.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -412,9 +412,9 @@ final关键字主要用在三个地方:变量、方法、类。
412412

413413
### 异常处理总结
414414

415-
- try 块:用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。
416-
- catch 块:用于处理try捕获到的异常。
417-
- finally 块:无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。
415+
- **try 块:**用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。
416+
- **catch 块:**用于处理try捕获到的异常。
417+
- **finally 块:**无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。
418418

419419
**在以下4种特殊情况下,finally块不会被执行:**
420420

@@ -423,6 +423,18 @@ final关键字主要用在三个地方:变量、方法、类。
423423
3. 程序所在的线程死亡。
424424
4. 关闭CPU。
425425

426+
下面这部分内容来自issue:<https://github.com/Snailclimb/JavaGuide/issues/190>
427+
428+
**关于返回值:**
429+
430+
如果try语句里有return,返回的是try语句块中变量值。
431+
详细执行过程如下:
432+
433+
1. 如果有返回值,就把返回值保存到局部变量中;
434+
2. 执行jsr指令跳到finally语句里执行;
435+
3. 执行完finally语句后,返回之前保存在局部变量表里的值。
436+
4. 如果try,finally语句里均有return,忽略try的return,而使用finally的return.
437+
426438
## 33 Java序列化中如果有些字段不想进行序列化 怎么办
427439

428440
对于不想进行序列化的变量,使用transient关键字修饰。

0 commit comments

Comments
 (0)