I am thinking of setting up a global, default Exception handler for my (Android) Mobile application(which uses Java syntax)开发者_Python百科 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.
- 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.
One possible problem with creating a global exception handler is you may get stuck in a loop of exceptions - some exceptions will be thrown repeatedly unless a program is terminated.
If you mean that when an exception is thrown, a message is displayed then the app is terminated, then you'll be fine.
精彩评论