UncaughtExceptionHandler问题

时间:2016-11-21 23:01:40

标签: android stack-trace uncaughtexceptionhandler

在以下代码中,我将在已发布的应用程序中获取异常数据。此应用程序未在调试模式下运行 - 它在许多手机上作为已发布的应用程序运行。

我在这里工作得很好。它将异常数据放入共享内存中,下次应用程序运行时我会将其邮寄给自己。我的问题是我得到的数据并不是非常有用。这就是生产的东西。 。

divide by zero StackTrace= [Ljava.lang.StackTraceElement;@7734137 Cause= null ex= java.lang.ArithmeticException: divide by zero

private Thread.UncaughtExceptionHandler onBlooey = new Thread.UncaughtExceptionHandler() {
        public void uncaughtException(Thread thread, Throwable ex) {
                putPref("storedexception", "Exception: " + ex);
        }
};   

这并不能说明我的意思。无论如何我可以获得堆栈跟踪吗?有什么能告诉我程序错误发生在哪里? 谢谢, 迪安

1 个答案:

答案 0 :(得分:0)

糟糕。很快就发布了。想出答案......

    private Thread.UncaughtExceptionHandler onBlooey = new Thread.UncaughtExceptionHandler() {
        public void uncaughtException(Thread thread, Throwable ex) {
                // quickly store the exception info and mail it to me nextime on startup
            debugLog("found uncaught exception: " + ex, true);
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            ex.printStackTrace(pw);
            String st = "";
            st = sw.toString(); // stack trace as a string
            putPref("storedexception", "Exception: " + ex + " stacktrace: " + st);
        }
};