diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/ExceptionHandler.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/ExceptionHandler.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/ExceptionHandler.java b/src/main/java/de/pixart/messenger/utils/ExceptionHandler.java new file mode 100644 index 000000000..40648dc04 --- /dev/null +++ b/src/main/java/de/pixart/messenger/utils/ExceptionHandler.java @@ -0,0 +1,31 @@ +package de.pixart.messenger.utils; + +import android.content.Context; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.lang.Thread.UncaughtExceptionHandler; + +public class ExceptionHandler implements UncaughtExceptionHandler { + + private UncaughtExceptionHandler defaultHandler; + private Context context; + + public ExceptionHandler(Context context) { + this.context = context; + this.defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); + } + + @Override + public void uncaughtException(Thread thread, Throwable ex) { + Writer result = new StringWriter(); + PrintWriter printWriter = new PrintWriter(result); + ex.printStackTrace(printWriter); + String stacktrace = result.toString(); + printWriter.close(); + ExceptionHelper.writeToStacktraceFile(context, stacktrace); + this.defaultHandler.uncaughtException(thread, ex); + } + +} |