【发布时间】:2012-04-03 05:55:39
【问题描述】:
有时我面临我必须写一段这样的代码(通常它有更多的嵌套 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();
}
}
}
}
当我不需要知道什么失败了,如果某些东西是 null 什么都不做,那么一种方法可能是
public void printIt(Object1 a){
try{
a.getB().getC().print();
}catch (NullPointerException e) {
}
}
第二种形式是否有问题,例如性能或其他类型的问题?
【问题讨论】:
-
异常在设计时并未考虑到标准程序流程,它们是为特殊情况而设计的。
-
不要抓住
RunTimeException的,而是避开它。 -
如果你必须处理这么多的空值,你使用的代码的定义可能有问题。
-
@Eng.Fouad RuntimeExceptions 并不总是可以避免的,这就是为什么它们是“运行时”的。
标签: java