1package eu.siacs.conversations.utils;
2
3import java.io.FileNotFoundException;
4import java.io.IOException;
5import java.io.OutputStream;
6import java.io.PrintWriter;
7import java.io.StringWriter;
8import java.io.Writer;
9import java.lang.Thread.UncaughtExceptionHandler;
10
11import android.content.Context;
12
13public class ExceptionHandler implements UncaughtExceptionHandler {
14
15 private UncaughtExceptionHandler defaultHandler;
16 private Context context;
17 public ExceptionHandler(Context context) {
18 this.context = context;
19 this.defaultHandler = Thread.getDefaultUncaughtExceptionHandler();
20 }
21 @Override
22 public void uncaughtException(Thread thread, Throwable ex) {
23 Writer result = new StringWriter();
24 PrintWriter printWriter = new PrintWriter(result);
25 ex.printStackTrace(printWriter);
26 String stacktrace = result.toString();
27 printWriter.close();
28 try {
29 OutputStream os = context.openFileOutput("stacktrace.txt",Context.MODE_PRIVATE);
30 os.write(stacktrace.getBytes());
31 } catch (FileNotFoundException e) {
32 // TODO Auto-generated catch block
33 e.printStackTrace();
34 } catch (IOException e) {
35 // TODO Auto-generated catch block
36 e.printStackTrace();
37 }
38 this.defaultHandler.uncaughtException(thread, ex);
39 }
40
41}