除了异常堆栈中的行号外,还包括源列编号



在代码中

int x = 0;
int y = 1 / x;
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at sample.MyClass.main(MyClass.java:16)

我怎么能找到像这样的人

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at sample.MyClass.main(MyClass.java:16,12)[/code]

你不能。打印异常时,它包含StackTraceElement

这是对上述结果负责的方法

 public StackTraceElement(String declaringClass, String methodName,
                             String fileName, int lineNumber) {
  this.declaringClass = Objects.requireNonNull(declaringClass, "Declaring class is null");
  this.methodName     = Objects.requireNonNull(methodName, "Method name is null");
  this.fileName       = fileName;
  this.lineNumber     = lineNumber;
 }

这里没有办法设置列编号。

StackTraceElement也是final类。你也不能扩展它和override

这是不可能的。如果您想获得更精确的行号,请使用额外的回车,如本例所示:

yourObject.
    aMethod().
         anotherMethod().
             aLastMethod();

最新更新