aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java
diff options
context:
space:
mode:
authorSam Whited <sam@samwhited.com>2014-10-30 15:20:20 -0400
committerSam Whited <sam@samwhited.com>2014-10-30 15:33:13 -0400
commit46f147a82c6b161e071f717c7686f8b78a20aaf1 (patch)
tree38ee04006e38197fd8009697b8975007ec0f45c8 /src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java
parent142384e5805d93887d185c9a5b74d4850e4ec719 (diff)
parenta362bd10214b16f8939c12a1dd4376667fe0d49f (diff)
Merge branch 'gradle' into development
Conflicts: .gitignore CHANGELOG.md README.md libs/MemorizingTrustManager libs/minidns libs/openpgp-api-lib
Diffstat (limited to 'src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java')
-rw-r--r--src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java b/src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java
new file mode 100644
index 00000000..88fa18ff
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java
@@ -0,0 +1,44 @@
+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);
+ }
+
+}