内の関数を呼び出す:再帰的に私はこのような例外句で関数を呼び出す再試行したい例外条項
private int mTries = 0;
private void myFunction() {
try {
// do something
} catch (Exception e) {
if (mTries ++ < MAX_TRIES;
myFunction();
}
}
}
私の質問に関係なく、スタックメモリ使用量を、catch節で再帰関数を呼び出します通常の場合と同じですか?私のアプリがアンドロイドプラットフォーム上で実行されている場合、これを行うことがスタックを吹き飛ばすかどうか私は疑問に思っています。
private void anotherFunction(int i) {
if (i == 0)
return;
anotherFunction(i--);
}
anotherFunction(int i)は、i <0で始まらないので、大丈夫です。最初の使用法については、アプリケーションロジックのjavaで例外ハンドラーを使用することは一般的にお勧めできません。パフォーマンス。 – keni
ケニーと同意します。私には、これには悪いコードの匂いがあります。 –