if
あなたの意見、ステートメント、またはTry/Catch
ブロックでの例外処理には、どちらの方法が適していますか?
ご存知のように、すべての例外はif
ステートメントで処理できるためです。
状況によります。説明してみます。
次の簡単な例を考えてみましょう。
try {
myVar.myFunc();
}
catch(NullPointerException e) {
//bla bla
}
また
if (myVar != null)
myVar.myFunc();
コードフローの一部として使用できる場合は、ステートメントを使用できますmyVar
。それ以外の場合は、制御下にないことが原因で発生した可能性があるため、例外を使用する必要があります。null
if
さて、私が理解していることから、関数の戻り値は成功または失敗になり、すべての実際の作業は関数の引数に対して行われるという if/else ステートメントの意味です。
これは C スタイルのコーディングです。例外はありません。
Java では、要素を参照 (またはポインター) で渡すことができないため、このアプローチには問題があります (非常に洗練されていない
を返すメソッドのラッパーを作成する必要があります)。int
それからエレガントなもの。
例 - C スタイルのコードでできること:
int calcSomething(int arg1, int arg2, int* result) {
//calcualtions
if (...) return FAILURE;
*result = ...
return SUCCESS;
}
また、コーディング環境は次のようになります。
if (calcSomething(...) == FAILURE) { handleError(); }
注 - このアプローチは Java で完全に消えたわけではありません。たとえば、操作が成功したかどうかを示すCollection#add()
a を返します。boolean
これは主に、false
値が実際にはエラーではない操作 (何もする必要がないことを示すもの) に使用されます。
「エラー」がブロックしている場合 (エラー処理に例外を使用する場合) は常に、読みやすくなり、コードの保守性が向上します。それが単なる指示である場合(eaxmpleの場合-要素はすでにセットに含まれています)-戻り値のブール値は問題ありません。