感到困惑的是如何最終關鍵字實際工作...最後工作不正常
當我運行的代碼try塊運行到完成它返回到哪裏被調用的 方法之前。但是,在它返回到調用方法 之前,finally塊中的代碼仍然執行。因此,請記住 finally塊中的代碼仍將執行,即使在try塊中某處存在返回語句 。
,我得到5而不是10如我所料
public class Main {
static int count = 0;
Long x;
static Dog d = new Dog(5);
public static void main(String[] args) throws Exception {
System.out.println(xDog(d).getId());
}
public static Dog xDog(Dog d) {
try {
return d;
} catch (Exception e) {
} finally {
d = new Dog(10);
}
return d;
}
}
public class Dog {
private int id;
public Dog(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
http://stackoverflow.com/questions/65035/does-finally-always-execute-in-java –
finally語句在執行完return語句之後執行,這就是爲什麼你得到5個不是10 –