Nik*_*tel 48 java android stack-trace
有e.printStackTrace()
打印异常错误的方法,所以我想把整个例外用于String
显示它Toast.makeText()
如何做到这一点?
如果有更多的替代想法,请与我分享或建议我.
Ido*_*lon 108
使用以下代码:
Writer writer = new StringWriter();
exception.printStackTrace(new PrintWriter(writer));
String s = writer.toString();
Run Code Online (Sandbox Code Playgroud)
曾经有一种方法通过Log.getStackTraceString
调用将异常堆栈跟踪提取到一行中的String中.但是,在Android 4.0(API 14)开始,该方法是不可靠了,因为它返回一个空字符串的UnknownHostException
(见Android的问题#21436的细节,简而言之就是:"以减少日志量喷出该应用程序在非做网络的错误状况不可用"Android工程师让恕我直言改变Log.getStackTraceString
方法的可疑决定.
因此,最好使用我在本文开头提供的代码.
Mac*_*tle 58
import android.util.Log;
...
String stackTrace = Log.getStackTraceString(e);
Run Code Online (Sandbox Code Playgroud)
这是可行的,但不要这样做.只显示错误消息(即使对于'真实'用户来说太多了),完整堆栈跟踪应仅转到日志.