|
1
6
选项2(一个常见的异常+枚举)的主要缺点是您丢失了一些选中异常的实用程序。一个方法必须简单地说“一些与框架相关的事情可能出错”:
…而不是“X或Y可能出错”:
它意味着可能需要处理一个框架异常的函数必须准备好处理 任何 其中,如果您是特定的,那么函数只需要准备好处理由它调用的框架方法抛出的异常。 所以对我来说,像选项1这样的层次结构(如果一个结构表明它自己的话,它不需要非常扁平)是可行的。也就是说,有些人根本不喜欢检查异常,对他们来说,我怀疑上面的说法并不令人信服。-)
编辑
并且理解了达菲莫的观点:我假设你在谈论你确实必须创造的例外。绝对投掷
标准
任何有意义的地方都有例外(几乎无处不在)。不要创建自己的
|
|
|
2
3
我同意使用描述性类名扩展java.lang.RuntimeException的异常。 如果你有那么多特定于业务的例外情况,这会让人感到压抑,这意味着你可能做错了。 见Joshua Bloch关于 favoring standard exceptions . |
|
|
3
1
我不会从通用继承
通常,您应该在域/层边界上抛出有意义的异常。所以关于你的问题,你应该选择1,记住上面的要点。选项2会增加代码复杂性,因为您总是需要检查异常类型以确定出了什么问题。让异常类自己说话。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |