4

我想显示我的应用程序中发生的异常的详细信息,例如异常的行号。这可能吗?

4

6 回答 6

7

是的。在下面的示例中,stackTraceElement 中有很多关于您的异常的信息。

自定义此方法:

private static String getExceptionDetails(Activity act, Exception e) {
    StackTraceElement[] stackTraceElement = e.getStackTrace();

    String fileName = "";
    String methodName = "";
    int lineNumber = 0;

    try {
        String packageName = act.getApplicationInfo().packageName;
        for (int i = 0; i < stackTraceElement.length; i++) {
            if (stackTraceElement[i].getClassName().startsWith(packageName))
            {
                fileName = stackTraceElement[i].getFileName();
                methodName = stackTraceElement[i].getMethodName();
                lineNumber = stackTraceElement[i].getLineNumber();
                break;
            }
        }
    } catch (Exception e2) {
    }

    return fileName + ":" + methodName + "():line "
            + String.valueOf(lineNumber);
}
于 2012-06-13T05:08:54.397 回答
2

你检查过了吗?

exception.printStackTrace()
于 2012-06-13T05:08:28.210 回答
2
exception.printStackTrace()

显示产生异常的行号和方法名称。

于 2012-06-13T05:10:51.640 回答
0

使用 try catch 块作为

 try{

   // here add your code 

    }catch(Exception e){
     Log.e("error",e.toString());
  }
于 2012-06-13T05:23:35.643 回答
0

你可以试试这个:

public static String getStackTrace(Throwable throwable) {
  StringWriter sw = new StringWriter();

  try (PrintWriter pw = new PrintWriter(sw)) {
    throwable.printStackTrace(pw);
    return sw.toString();
  }
}
于 2020-04-02T13:10:27.667 回答
-3

查看 -

exception.getMessage()
于 2012-06-13T05:10:43.373 回答