最近我看到一些代码,作者几乎在每个构造函数中都抛出异常,并在像下面这样的返回int类型的方法中抛出运行时异常:
if(condition){
return 1;
}
if(condition){
return 2;
}
if(condition){
return 3;
}
throw new RuntimeException("Unreachable code");
// method ends here
我个人不会在那里抛出异常,因为我会使用if和else if语句进行结构化处理,在这种特定情况下,您的代码如果不能满足其中一个条件,则基本上是错误的。
有很多地方可以抛出运行时异常,如果您的代码正常工作,就永远不会到达这些地方。有时候似乎作者不相信代码能够正常工作,在上面的代码块中就是如此。此外,每个构造函数都可以抛出异常,以防它不能正确初始化,但您也可以将其结构化,使对象为空-您随后可以在主函数中检查它。
我的问题基本上是,什么时候值得抛出异常?