尝试在try、catch块中分别return一个结果(如返回一个整型数),并在finally块中修改这个返回值,观察其结果,并解释说明。
时间: 2024-02-03 18:11:50 浏览: 44
在try、catch块中分别return一个结果,会产生以下几种情况:
1. try块中return,catch块中不return:try块中的返回值会被返回,catch块中的代码不会被执行。
```java
public static int test1() {
try {
return 1;
} catch (Exception e) {
return 2;
} finally {
System.out.println("finally block");
}
}
```
输出结果为:
```
finally block
1
```
2. try块中不return,catch块中return:catch块中的返回值会被返回,try块中的代码不会被执行。
```java
public static int test2() {
try {
int a = 1 / 0;
} catch (Exception e) {
return 2;
} finally {
System.out.println("finally block");
}
return 0;
}
```
输出结果为:
```
finally block
2
```
3. try块中和catch块中都有return:catch块中的返回值会被返回,try块中的返回值会被忽略。
```java
public static int test3() {
try {
return 1;
} catch (Exception e) {
return 2;
} finally {
System.out.println("finally block");
return 3;
}
}
```
输出结果为:
```
finally block
3
```
在finally块中修改返回值,会修改最终返回的值。因为finally块中的代码总会被执行,所以在这里对返回值进行修改,会覆盖try和catch块中的返回值。
```java
public static int test4() {
try {
return 1;
} catch (Exception e) {
return 2;
} finally {
System.out.println("finally block");
return 3;
}
}
```
输出结果为:
```
finally block
3
```
阅读全文