クラス X があります。X クラスのメソッドmethod()
は をスローしSomeException
ます。
例外を処理するどの方法が優れているか、より効率的か疑問に思います。例外とすべての依存関係をスローする try ブロック メソッドを囲んでいる場合、または try ブロックの外側に依存関係を保持しているが、失敗後にメソッドから戻っている場合。
1.
public void test() {
X x = new X();
try {
T temp = tx.method();
temp.doWhatever();
}
catch(SomeException e) { handleException(e); }
}
また
2.
public void test() {
X x = new X();
T temp = null;
try {
temp = tx.method();
}
catch(SomeException e) {
handleException(e);
return;
}
temp.doWhatever();
}
編集済み:(注釈の後)
さらに、次のようなコードを理解しています。
1.
tx.method()
例外がスローされるため、次に実行されるのはcatch
ブロックです。プログラムが行をスキップし、何もないため、それtemp
はまだ問題ではありません。null
temp.doWhatever();
NullPointerException
2.ここでは、実行したくないので命令を使用しreturn
ますtemp.doWhatever()
。temp
null