if (stuff) doThings();
else if (something) doOtherThings();
else if (otherStuff) doStuff();
else // .. this isn't supposed to be reached
在如上所述的情况下,我喜欢将else
放在最后,以便在程序运行不应运行的代码时通知我,这意味着出现了问题(即上述之一)条件应该是真的,但都不是,这意味着有些事情是错误的。)
我应该在最后的其他方面抛出什么异常,通知我出了什么问题?
答案 0 :(得分:8)
IllegalStateException
是一个很好的候选人。
正如Java API所述:
表示在非法或不适当的时间调用了某个方法。换句话说,Java环境或Java应用程序未处于所请求操作的适当状态。
换句话说,您的program处于没有为其定义转换的状态"这不应该到达"输入
如果您的stuff
,something
和otherStuff
都与您的方法参数相关,您还可以使用IllegalArgumentException
,例如:
if (arg == null) doThings();
else if (arg.endsWith("foo")) doOtherThings();
else if (arg.endsWith("bar")) doStuff();
else throw new IllegalArgumentException(
"arg should be null or end with \"foo\" or \"bar\"");
答案 1 :(得分:3)
您可以通过扩展Exception类来创建自己的自定义异常类。
例如:
class CustomException extends Exception {
...
}
然后:
if (stuff)
doThings();
else if (something)
doOtherThings();
else if (otherStuff)
doStuff();
else
throw new CustomException();