St.*_*rio 3 java assert switch-statement
我正在回答Java测试并遇到问题:
下列哪项为真?
A.在断言语句中,冒号(:)之后的表达式可以是任何Java表达式.
B.如果交换机块没有默认值,则认为添加断言默认值是合适的.
C.在断言语句中,如果冒号(:)之后的表达式没有值,则断言的错误消息将为空.
D.使用catch子句处理断言失败是合适的.
正确的答案是B
.说实话,我通过排除另一个明显错误的案例回答了这个问题,但实际上我无法理解这个问题.谁能解释为什么这是真的?哪里有帮助?
我想这意味着你应该保护自己不要错过开关盒.
假设你enum Color {red, green}
在代码中有一个和这个开关:
switch(color) {
case red:
doSomethingRed();
break;
case green:
doSomethingGreen();
break;
}
Run Code Online (Sandbox Code Playgroud)
如果您将来添加新颜色blue
,则可能忘记在交换机中添加一个案例.将失败的断言添加到默认情况下将抛出AssertionError,您将发现错误.
switch(color) {
case red:
doSomethingRed();
break;
case green:
doSomethingGreen();
break;
default:
assert false : "Oops! Unknown color"
}
Run Code Online (Sandbox Code Playgroud)
这取决于具体情况,但我是这么看的
// Consider expecting only 1,2 or 3 as switch case
switch(x)
{
case 1:
// operations
break;
case 2:
// operations
break;
case 3:
// operations
break;
default: assert false : "Input should be between 1-3";
}
Run Code Online (Sandbox Code Playgroud)
可能很方便,因为您可能收到的任何其他输入都可能被视为错误输入。
归档时间: |
|
查看次数: |
4261 次 |
最近记录: |