在java中返回before finally
在这种情况下,“myMethod()”是在“doSomething()”之前还是之后执行的
public class Foo {
public void fooMethod() {
Bar bar = new Bar();
bar.barMethod().myMethod();
}
}
public class Bar {
public SomeClass barMethod() {
try {
return new SomeClass();
} finally {
doSomething();
}
}
}
# 1 楼答案
myMethod()
在doSomething
之后执行,因为doSomething
在barMethod
之前执行,将其值返回给调用者计算并准备返回该值,然后
finally
块整体执行,然后调用方才能继续;这是调用myMethod
的时候# 2 楼答案
myMethod()之前的doSomething()方法
它在显示“doSomething”后崩溃