在Java中,try/catch与null检查之间的区别

23 浏览
0 Comments

在Java中,try/catch与null检查之间的区别

有时候我会遇到需要写出像这样的代码(通常它会有更多嵌套的if语句和更复杂的结构,但用例中足够了):

public void printIt(Object1 a){
  if (a!=null){
     SubObject b= a.getB();
     if (b!=null){
         SubObject2 c=b.getC();
         if(c!=null){
             c.print();
         }
     }
  }
}

当我不需要知道哪个部分出错,如果某个对象为空则什么都不做,一个方法是这样的:

public void printIt(Object1 a){
    try{
      a.getB().getC().print();
    }catch (NullPointerException e) {
    }
}

这种第二种形式有什么问题吗,比如性能或其他类型的问题?

0