可以抛出也可以用来退出switch语句而不使用break关键字吗?为什么要使用投掷而不是休息?
switch(number)
{
case 1:
throw new RuntimeException("Exception number 1");
case 2:
throw new RuntimeException("Exception number 2");
}
解决方法
有两种情况可以使用throw来中断交换机的流量:
>流量控制;一般来说,这是一种不好的做法 – 您不希望出现特殊行为来决定您的计划下一步决定去哪里.
>不太可能但似乎合理的默认情况;如果你达到了一个不可能达到默认值的条件,但无论如何都会发生.不知何故.不可思议的.或者,如果您有严格的编码标准,则要求switch语句具有默认情况.
例:
public class Test {
public static enum Example {
FirsT_CASE,SECOND_CASE;
}
public void printSwitch(Example theExampleCase) {
switch(theExampleCase) {
case FirsT_CASE:
System.out.println("First");
break;
case SECOND_CASE:
System.out.println("Second");
break;
default: // should be unreachable!
throw new IllegalStateException(
"Server responded with 724 - This line should be unreachable");
}
}