在某些语言中,可以在堆栈跟踪中获取行的列号,但在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)"
Run Code Online (Sandbox Code Playgroud)
虽然这可能是一个糟糕的例子,因为我从浏览器控制台导致错误,您可以看到列号,这对解决错误非常有帮助.
给你一个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)
Run Code Online (Sandbox Code Playgroud)
这导致88包含的线
URI uri = uriInfo.getBaseUriBuilder().path(objectA).path(objectB).build();
随着堆栈跟踪我有我无法检查哪个.path调用导致异常.所以我的问题是,是否有任何解决方案可以让我获得该列的参考?
(为了防范一些可能的替代答案,我们需要一个解决方案来获取列号,其他答案,如如何单步执行调试器或重构每个构建器模式等,将无法回答问题)
当我使用以下内容注册click事件的处理程序时:
$('.drilldown-action > li').live('click', function(event){
drilldown.loadActions($(event.target));
});
Run Code Online (Sandbox Code Playgroud)
使用HTML:
<ul class="drilldown-action">
<li data-action="Dummy"><a href="#">Dummy</a> Dum</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在浏览器中(使用Chrome)我点击a标签,我如何获得事件已注册的jQuery对象?我希望li元素是事件目标,因为这是我放在选择器中.我知道我可以使用.parent()这种情况,但有没有办法让对象与选择器匹配,而不是底部事件目标?使用.parent()也是一种痛苦,因为当li点击其他部分时,我不需要使用它.