public int init(){
try {
int i=4/0;
return 0;
} catch (Exception e) {
return 1;
}finally{
return 2;
}
}
返回值是2,一个方法只能有一个返回值,所以不是1就是2。
return 1之前会调用finally方法,返回了2,返回值被覆盖,所以返回2
int n=0;
try {
int i=4/0;
return n;
} catch (Exception e) {
return ++n;
}finally{
n++;
}
try {
int i=4/0;
return 0;
} catch (Exception e) {
return 1;
}finally{
return 2;
}
}
返回值是2,一个方法只能有一个返回值,所以不是1就是2。
return 1之前会调用finally方法,返回了2,返回值被覆盖,所以返回2
int n=0;
try {
int i=4/0;
return n;
} catch (Exception e) {
return ++n;
}finally{
n++;
}
返回值是1,虽然finally里面的n++了,但并不影响返回值
面试的话一般问道:finally finalize和final的区别和用法

本文详细解析了Java中异常处理机制的使用方式,通过具体代码示例介绍了try、catch及finally块的功能与执行流程,展示了不同情况下返回值的变化,并区分了finally与其他相关概念。
851

被折叠的 条评论
为什么被折叠?



