Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Global Exception Handlers in Java

I am thinking of setting up a global, default Exception handler for my (Android) Mobile application(which uses Java syntax) using Thread.setDefaultUncaughtExceptionHandler(...) call. I am thinking of just displaying an Alert Dialog with appropriate message to the user.

Are there any gotchas, caveats and rules that one needs to follow when setting DefaultExceptionHandlers? Any best practices like making sure that the process is killed, full stack trace is written to logs etc. ?

Links to documentation, tutorials etc. that can throw some light on this are welcome.

Thanks.

like image 842
Samuh Avatar asked May 12 '10 03:05

Samuh


1 Answers

  • The name is a bit misleading, because using that method will set a default exception handler for all threads.
  • Make sure no exceptions can be thrown from your exception handler.
  • If you're doing GUI stuff from your exception handler, make sure you're doing it from the right thread.
  • An uncaught exception will only stop the thread where the exception took place, if that also causes the process to terminate depends on any other threads that might be running.
like image 91
Kees Kist Avatar answered Oct 11 '22 14:10

Kees Kist