1
4
我想
|
2
11
你应该扔一个
|
3
3
|
4
3
IllegalStateException最接近您想要的:“无论是否可能实际改变实例状态的这个方面,这个异常都是适当的”。
|
5
2
不,因为不可变对象只有一个状态,不可能从一个合法状态转移到另一个合法状态。
因此,在这个场景中,如果您有一个bigInteger的不可变集合,并且您使用零元素创建它,那么在创建集合时您将收到一个“无效参数”,这时您必须抛出异常。
所以,抛出IllegalArgumentException就像:
客户:
在这种情况下,你不需要检查任何东西
投掷
客户:
记住,如果一个程序失败了,你能做的最好的事情就是 to making it fail fast . Collections.max 有一个不同的目的,因为作为一个实用方法(不是一个不可变的对象),他不能为空集合的创建负责(发生这种情况时他不在场),他唯一能做的就是说 “这个收藏里没有马克斯” 因此没有任何例外。 最后一句话,RuntimeExceptions, should be used for programming mistakes only (可以通过在发布应用程序之前测试它来修复的) |
6
2
你应该扔一个
在您的示例中,您的对象进入一个抽象状态,我将调用它
空集合
Beckman研究了寻找对象协议的开源Java程序,并对产生的类进行了分类。第三个最常见的方案类别是 .
Beckman的论文列出了许多类型限定符示例,我选择了其中的三个,在每种情况下,unavailable方法都会抛出一个
听从凯文·布里隆的建议。这些方法的失败取决于实例的构造方式。在示例1和2中,成功和失败的实例可能属于不同的具体类,因为
另外,你应该使用
|
lfox · 如果列中不存在某个值,则停止代码执行 2 年前 |
zaen · 将值传递到异常字符串消息中 2 年前 |
Zephyr · 如何在双ListView选择系统上实现过滤器? 6 年前 |
Aave · 错误数组长度的特定异常 6 年前 |