Question

I want to show details of an exception that occurred in my application, like the line number of the exception. Is this possible?

Était-ce utile?

La solution

Yes. There are lots of information about your exception in stackTraceElement in the following example.

customize this method:

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);
}

Autres conseils

Did you check?

exception.printStackTrace()
exception.printStackTrace()

Shows line number and method name which has generated exception.

Use try catch block as

 try{

   // here add your code 

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

you may try this:

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

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

check -

exception.getMessage()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top