2

例外をスローするメソッドがあります

public int myMethod throws Exception

私は myMethod 関数と hava try-catch ブロックを呼び出す別の関数を持っています。実行時例外をスローして、プログラムを強制的に終了させます。これはプログラムを終了する適切な方法ですか? このようにすると、スタック トレースが 2 回出力され、RuntimeException からのスタック トレースが役に立たなくなります。

完全なスタック トレースを出力して catch 句でプログラムを終了するための推奨される方法は何ですか。

public int callMyMethod(){
     try{
         myMethod();
     }
     catch(Exception ex){
          ex.printStackTrace(System.out);
          throw new RuntimeException();
     }
}
4

3 に答える 3

1
public int callMyMethod(){
     try{
         myMethod();
     }
     catch(Exception ex){
          ex.printStackTrace(System.out);
          System.exit(0); // terminates with exit code 0, no extra stack trace.
     }
}
于 2013-05-11T00:46:06.103 に答える
0

例外処理は、プログラミングで最も重要な側面の 1 つです。質問に対する答えは、作業しているアプリケーションの種類によって異なります。

system.exit(0) はプログラムを終了するだけであり、これにより多くの混乱が生じる可能性があります。また、 Exception を決してキャッチしないようにしてください。そうしている場合は、処理するつもりのないすべてのタイプの例外をキャッチすることになります。

特定の例外を常にキャッチして、必要な方法で処理できるようにします。

于 2013-05-11T04:10:02.083 に答える