ExceptionHandler.java

 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}