The following two code generate different result:
def x = try{
true
} finally false
invoke x gets true
def y:Boolean = try{
return true
} finally {
return false
}
invoke y gets false
the return version behave same as Java.
Personally I never use ‘return’ in scala. But it’s good to know how scala evaluate the value of a try-catch-finally block. Thanks.
You should not have a return statement in a finally block (even though it is technically allowed, at least in Java, C# for example forbids it).
If the Scala finally block had an implicit return, that would always clobber the intended return value. So that makes no sense.
But I suppose it cannot help you if you explicitly write it that way.