e.printStackTrace();在字符串中

2022-08-31 19:41:40

有一种方法可以打印异常错误,所以我想把整个异常带进去,并通过如何做到这一点来
显示它?
如果有更多的替代想法,那么请与我分享或建议我。e.printStackTrace()StringToast.makeText()


答案 1

使用以下代码段:

Writer writer = new StringWriter();
exception.printStackTrace(new PrintWriter(writer));
String s = writer.toString();

曾经有一种方法可以将异常堆栈提取到字符串中,并在一行中使用调用。但是从Android 4.0(API 14)开始,该方法不再可靠,因为它返回一个空字符串(有关详细信息,请参阅Android问题#21436,简而言之:“为了减少应用程序在网络不可用的非错误条件下所做的日志喷出量”Android工程师做出了一个可疑的决定来修改方法)。Log.getStackTraceStringUnknownHostExceptionLog.getStackTraceString

因此,最好使用我在本文开头提供的代码。


答案 2
import android.util.Log;

...

String stackTrace = Log.getStackTraceString(e);

推荐