Noa*_*ert 19 java debugging nullpointerexception
我在java中使用eclipse和编程.有时我遇到一个会让我困扰几个小时的nullPointerException.无论如何,更好地调试nullPointerExceptions并找出哪些变量值和其他会导致空指针异常的事情.
jas*_*son 26
查看堆栈跟踪并读取NullPointerException抛出的行号.几乎总是,该行有一些方法调用
x.getValue()
Run Code Online (Sandbox Code Playgroud)
如果x是null,你会得到一个NullPointerException.如果堆栈跟踪顶部的方法不是您的代码,请一直追踪堆栈,直到您找到代码.在这种情况下,通常会传递null给不喜欢null参数的方法.找到并修复它.
此外,当您遇到不属于您的方法时,通常会NullPointerException阅读文档.例如,看看String.replace(CharSequence target, CharSequence replacement):
抛出:
NullPointerException-如果target或者replacement是null.
它没有比那更清楚!
这是一个例子:

看看第4行,我们看到了foo.bar().这意味着foo是null.那一个很容易.让我们看另一个例子:

追溯到您的代码,我们看到它s.replace(target, replacement)正在抛出.我们应该检查target和replacement.我们附上一个调试器:

啊哈!replacement是null.你可以在Eclipse中做同样的事情.设置抛出异常的断点,并使用它来检查方法的参数.我在这里很原始,因为我来自一个思想流派,我真的相信如果他们学会先用艰难的方式去做,那么每个人都会变得更好.泄漏的抽象和所有这些.
Jay*_*han 17
调试时可以使用BreakPoints视图来捕获空指针.
窗口 - >显示视图 - >断点
在视图中,有一个"J!"允许您在异常上设置断点.你可以设置java.lang.NullPointerException.因此,一旦抛出空指针异常,您就可以检查哪个变量导致null.
您可以做的其他事情是在编码时捕获可能的空指针访问.当然,您无法使用此设置捕获所有Null指针.但仍然有用,在你的日食中设置以下设置.
首选项 - > Java - >编译器 - >错误/警告 - >空分析
| 归档时间: |
|
| 查看次数: |
37792 次 |
| 最近记录: |