如何在我的情况下处理null异常

时间:2012-03-16 12:00:13

标签: java

我已经定义了一个函数:

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 =================

4 个答案:

答案 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;
}