どうも、えいやです。
tryとfinallyで、両方リターンすると両方評価されて、返り値はfinallyの方です。
tryFinallyBothReturn.groovy
def func = {
try{
return {print('a');0}()
}finally{
return {print('b');1}()
}
}
println func() // ab1
Javaでも挙動は同じなはずです。
まぁ、そもそもこんなコード書いちゃダメだけどね。