gpt4 book ai didi

java - 可以在 switch 语句中使用 throw 代替 break 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:52 34 4
gpt4 key购买 nike

不使用 break 关键字也可以使用 throw 退出 switch 语句吗?为什么使用 throw 而不是 break?

switch(number)
{
case 1:
throw new RuntimeException("Exception number 1");
case 2:
throw new RuntimeException("Exception number 2");
}

最佳答案

有两种情况可以使用 throw 来中断 switch 的流程:

  1. 流量控制;一般来说,这是一种不好的做法 - 您不希望异常行为决定您的程序决定下一步去哪里。

  2. 不太可能但似是而非的默认情况;以防您遇到达到默认值应该是不可能的情况,但无论如何都会发生。不知何故。奇迹般地。或者,如果您有严格的编码标准,要求 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");
    }
    }

关于java - 可以在 switch 语句中使用 throw 代替 break 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16579585/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com