-3

ifあなたの意見、ステートメント、またはTry/Catchブロックでの例外処理には、どちらの方法が適していますか?

ご存知のように、すべての例外はifステートメントで処理できるためです。

4

2 に答える 2

1

状況によります。説明してみます。

次の簡単な例を考えてみましょう。

try {
  myVar.myFunc();
} 
catch(NullPointerException e) {
  //bla bla
}

また

if (myVar != null) 
   myVar.myFunc();

コードフローの一部として使用できる場合は、ステートメントを使用できますmyVar。それ以外の場合は、制御下にないことが原因で発生した可能性があるため、例外を使用する必要があります。nullif

于 2013-01-17T12:34:52.767 に答える
0

さて、私が理解していることから、関数の戻り値は成功または失敗になり、すべての実際の作業は関数の引数に対して行われるという 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の場合-要素はすでにセットに含まれています)-戻り値のブール値は問題ありません。

于 2013-01-17T12:30:51.483 に答える