我已经定义了一个函数:
public MyCar findCar(){
MyCar car = CarManager.findCarById("U983"); //Nullpointer Exception here if no car be found
if(car!=null)
return car;
else
return null;
}
当我在Java中调用上述函数时,如果上面的CarManager.findCarById()
找不到任何汽车,则会返回null
,我会尝试检查if condition
是否为null
{1}}返回null
以其他方式返回car
。
但是findCar()
函数总是在findCarById()找不到任何汽车时停止并提高 Nullpointer Exception ,而不通过我的if condition
。如何摆脱它?
============ findCarById()是我无法修改的库API =================
答案 0 :(得分:4)
抛出或捕获NullPointerException并不是一个好主意。如果您可以修改findCarById
,请进行更改。
否则,你可以在这里试试。
MyCar car = null;
try {
car = CarManager.findCarById("U983");
} catch (NullPointerException e) {
car = null;
}
答案 1 :(得分:0)
在静态CarManager类中检查(或发布)方法“findCarById”。
答案 2 :(得分:0)
您说您发布的findCar()
方法正在抛出NullPointerException
?这是不可能的,因为该方法中没有对象解引用。
此外,整个if条件毫无意义。它说“如果汽车为空,则返回null,否则返回汽车”。您也可以说return car;
- 它将具有完全相同的效果。
答案 3 :(得分:0)
如此修改findCar()
:
public MyCar findCar(){
MyCar car = null;
try {
car = CarManager.findCarById("U983"); //Nullpointer Exception here if no car be found
}
catch (Exception e){
e.printStackTrace();
}
return car;
}