我们在使用Eclipse跟踪代码中的空指针异常时遇到了麻烦,我想知道Eclipse是否在这方面提供了任何帮助。 Eclipse提供了哪些方法可以轻松跟踪Null Pointer Exceptions?
为了说明,这是一个抛出NPE的典型代码示例:
if (myObject.getDimensionMap().get(keyValue.getConcept()).isMeasureDimension()) {
除非我弄错了,否则有5种可能的对象可能为空:
避免更改代码的参数,以便每个语句都在不同的行上,Eclipse是否提供了帮助查找NPE的任何方法,而无需单步执行每个语句?请记住,开发团队花了很长时间才得到这个声明,更不用说找出哪个元素是null(这是getDimensionMap()。get)。
更新
找到NPE的实际原因需要很长时间,因为违规代码被隐藏在深度调用层次结构中,其中外层有一个捕获所有异常。这样做的原因是,异常可以以更具吸引力的格式呈现并显示给用户。所以代码就像
try {
doSomething
...
callSomething
callSomethingElse
...
offending if test which throws the NPE
...
} catch (Exception e) {
// Format exception and pass back to client
}
当然,用户永远不希望看到短语NullPointerException ....
感谢。
答案 0 :(得分:4)
从Eclipse,运行/添加java异常断点。
选择NullPointerException。确保'暂停捕获的异常'被勾选。
唯一的缺点是它会触发任何有意提升并在内部捕获NPE的代码。