From baf0d6478750bb59e3f883fb7f814a92f27b8a29 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 9 Mar 2014 13:21:28 +0100 Subject: exception handler --- .../conversations/utils/ExceptionHandler.java | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/eu/siacs/conversations/utils/ExceptionHandler.java (limited to 'src/eu/siacs/conversations/utils/ExceptionHandler.java') diff --git a/src/eu/siacs/conversations/utils/ExceptionHandler.java b/src/eu/siacs/conversations/utils/ExceptionHandler.java new file mode 100644 index 00000000..01cfebbb --- /dev/null +++ b/src/eu/siacs/conversations/utils/ExceptionHandler.java @@ -0,0 +1,41 @@ +package eu.siacs.conversations.utils; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.lang.Thread.UncaughtExceptionHandler; + +import android.content.Context; + +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(); + try { + OutputStream os = context.openFileOutput("stacktrace.txt",Context.MODE_PRIVATE); + os.write(stacktrace.getBytes()); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + this.defaultHandler.uncaughtException(thread, ex); + } + +} -- cgit v1.2.3