可以抛出也可以用来退出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"); } }