jag*_*ags 18 java nullpointerexception
我尝试使用try-catch块来捕获NullPointerException 但仍然是以下程序给出错误.我做错了什么或者有其他方法可以捕获NullPointerException以下程序.任何帮助都非常感谢.
public class Circular_or_not
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
try
{
LinkedListNode[] nodes = new LinkedListNode[10];
for (int i = 0; i < 10; i++)
{
nodes[i] = new LinkedListNode(i, null, i > 0 ? nodes[i - 1] : null);
}
// Create loop;
// nodes[9].next = nodes[3];
Boolean abc= Check_Circular(nodes[0]);
System.out.print(abc);
}
catch(NullPointerException e)
{
System.out.print("NullPointerException caught");
}
}
public static boolean Check_Circular(LinkedListNode head)
{
LinkedListNode n1 = head;
LinkedListNode n2 = head;
// Find meeting point
while (n2.next != null)
{
n1 = n1.next;
n2 = n2.next.next;
if (n1 == n2)
{
return true;
}
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
Eng*_*uad 37
NullPointerException 是一个运行时异常,不建议捕获它,而是避免它:
if(someVariable != null) someVariable.doSomething();
else
{
// do something else
}
Run Code Online (Sandbox Code Playgroud)
elT*_*oro 17
如前所述,在另一个答案中,不建议捕获NullPointerException.但是你肯定能抓住它,就像下面的例子所示.
public class Testclass{
public static void main(String[] args) {
try {
doSomething();
} catch (NullPointerException e) {
System.out.print("Caught the NullPointerException");
}
}
public static void doSomething() {
String nullString = null;
nullString.endsWith("test");
}
}
Run Code Online (Sandbox Code Playgroud)
虽然可以捕获NPE,但你绝对不应该这样做,而是修复最初的问题,即Check_Circular方法.
| 归档时间: |
|
| 查看次数: |
115405 次 |
| 最近记录: |