如何获取有关应用程序中发生的异常的更多详细信息?

时间:2012-06-13 05:07:35

标签: java android exception stack-trace line-numbers

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

6 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:2)

你检查了吗?

exception.printStackTrace()

答案 2 :(得分:2)

exception.printStackTrace()

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

答案 3 :(得分:0)

使用try catch block作为

 try{

   // here add your code 

    }catch(Exception e){
     Log.e("error",e.toString());
  }

答案 4 :(得分:0)

您可以尝试以下方法:

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

  try (PrintWriter pw = new PrintWriter(sw)) {
    throwable.printStackTrace(pw);
    return sw.toString();
  }
}

答案 5 :(得分:-2)

检查 -

exception.getMessage()