0

Visual C++ コードでは、関数の戻り値が予期されていないかどうかを確認するためにいくつかのマクロを作成し、Exit ラベルに移動していました。このようなもの:

HRESULT hr = S_OK;
IF_FALIED_EXIT(boo());
...
Exit:
  if(FAILED(hr)){ print error message }
  return hr;

これは、プログラムがクラッシュするのを防ぎ、常に例外を処理できるようにするためです。私の質問は、Java ではこのようなコード スタイルを推奨するのか、それともほとんどの場合に try/catch を使用するべきなのかということです。

ありがとうございました

4

1 に答える 1

1

これは特にJavaでは推奨されていません。C および C++ から削除された機能を参照してください。

Java では、似たようなことができることがいくつかあります。たとえば、次の基本的な例を参照してください。この例では、ラベル付きのブレークを早期エスケープに使用しています。

// a Class is handed in to create a new instance of with basic reflection

construct_and_add: if (clazz != null) {

    try {
        Object obj = clazz.newInstance();

    } catch (Exception e) {
        System.err.println("Error <" + e.getClass().getName()
            + "> in reflective instantiation: " + e.getMessage());

        break construct_and_add;
    }

    somewhereElse.add(obj);
}
于 2013-11-07T04:59:53.623 に答える