在某些语言中,我们可以在堆栈跟踪中获取一行的列号,但是在Java中,我们只有行号。
举个例子,在另一种语言中,我们可以有以下内容:
Error
at <anonymous>:2:2
at Object.InjectedScript._evaluateOn (<anonymous>:641:39)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:580:52)
at Object.InjectedScript.evaluate (<anonymous>:495:21)"
虽然这可能不是一个好的例子,因为我是从浏览器控制台引起错误的,但您可以看到列号,这对于解决错误非常有帮助。
让我用Java举个例子(是的,名称已更改):
Caused by: java.lang.IllegalArgumentException: path was null
at org.jboss.resteasy.specimpl.ResteasyUriBuilder.path(ResteasyUriBuilder.java:362)
at enterprise.money.service(AbstractSomething.java:88)
这导致了包含
88
行的代码:
URI uri = uriInfo.getBaseUriBuilder().path(objectA).path(objectB).build();
根据我的堆栈跟踪,我无法检查哪个.path
调用引起了异常。因此,我的问题是,是否有任何解决方案可以让我获取列的引用?(为防止一些可能的替代答案,我们需要解决如何获取列号的问题,其他答案比如如何通过调试器步进或重构每个生成器模式等都不能回答这个问题)