我想重試例外條款像這樣調用函數:遞歸調用的例外條款的功能
private int mTries = 0;
private void myFunction() {
try {
// do something
} catch (Exception e) {
if (mTries ++ < MAX_TRIES;
myFunction();
}
}
}
我的問題,無論堆棧內存的使用情況,catch子句中調用一個函數遞歸就像在正常情況下調用它一樣?我想知道如果我的應用程序在android平臺上運行,這樣做是否會炸掉堆棧。
private void anotherFunction(int i) {
if (i == 0)
return;
anotherFunction(i--);
}
anotherFunction(int i)看起來很好,就像你不從i <0開始一樣。關於第一個用法,通常不鼓勵在java中使用異常處理程序來處理應用程序邏輯,並且它很糟糕性能。 – keni 2011-12-29 23:23:52
同意keni。對我來說,這有一個不好的代碼味道。 – 2011-12-29 23:30:44