3

処理されていないすべての例外を処理 (単純なログ書き込み) することは可能ですか?

より詳細には、コード内の任意の場所で発生した例外をすべてログに記録し、例外をログに記録してから続行する必要があります(明らかに、より多くの例外が発生する可能性があります!)。

4

3 に答える 3

5

デフォルトのキャッチされていない例外ハンドラーを使用して、処理されていない例外をキャッチできます。

スレッドまたはスレッドグループごとに特定のハンドラーを設定することもできます。

于 2012-05-14T05:57:37.230 に答える
1

これにはAOP(アスペクト指向プログラミング)を使用できます。具体的には、すべての例外をログに記録するアスペクトを作成できます。

Springを使用している場合は、AfterThrowingAdviceAnnotationを使用できます。

于 2012-05-14T06:04:04.570 に答える
0

ここにあなたを助けることができるコードがあります:

public class MyDefaultExceptionHandler extends DefaultExceptionHandler
  {

  private UncaughtExceptionHandler defaultUEH;

  public MyDefaultExceptionHandler() 
    {
    this.defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
    }

  @Override
  public void uncaughtException(Thread t, Throwable e) 
    {
    //print anything you wish about the Throwable e :getStackTrace(), getCause(), getClass()...
    defaultUEH.uncaughtException(t, e); //this will call the default handling of the exception (crash...)
    }
  }
… 
//in the main app:
Thread.setDefaultUncaughtExceptionHandler(new MyDefaultExceptionHandler());
于 2012-05-14T06:09:26.800 に答える