2013年1月8日火曜日

UncaughtExceptionHandlerで再度通常のエラーダイアログを表示

例外をtry-catchしなくても、Thread.UncaughtExceptionHandlerを使うと
catch漏れした例外を拾うことが出来る。

今回やりたかったのは、Thread.UncaughtExceptionHandlerで例外を拾った後に
通常のエラーダイアログ通知を表示する。
 private Thread.UncaughtExceptionHandler defaultUEH;
 private Thread.UncaughtExceptionHandler newUEH = new UncaughtExceptionHandler() {
  @Override
  public void uncaughtException(Thread th, Throwable ex) {
   defaultUEH.uncaughtException(th, ex);
  }
 };

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
  Thread.setDefaultUncaughtExceptionHandler(newUEH);

  // Exception
  throw new RuntimeException();
 }
これでとりあえず動くけど未検証

0 件のコメント:

コメントを投稿