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

java – 可以在switch语句中使用throw而不是break吗?的更多相关文章

  1. ios – 在Obj-C中使用Switch语句

    下面是一个Switch/Case语句,当无法发送电子邮件时显示错误消息.在大多数情况下,一切似乎都是正确的,但是当我将UIAlertView放入Switch语句时,我在Xcode中收到错误:为什么在将代码放入案例时会产生错误?解决方法把它放在括号中:

  2. xcode – 为什么switch语句中的’case’为负缩进?

    3个我不认为这完全是一个Swift/Xcode的东西,因为我已经在其他语言/IDE中看到过它.为什么switch语句中的’case’为负缩进?我希望Switch语句看起来像这样但Xcode坚持这一点这是一个错误,还是有原因的?

  3. 寒城攻略:Listo 教你 25 天学会 Swift 语言 - 07 Control Flow

    importFoundation//***********************************************************************************************//1.ControlFlow(控制流)//_________________________________________________________________

  4. Swift语法基础:19 - Swift的控制转移的语句, Continue, Break, Fallthrough, Labeled Statements

    当在一个switch代码块中使用break时,会立即中断该switch代码块的执行,并且跳转到表示switch代码块结束的大括号(})后的第一行代码。Swift语言的这种避免默认落入到下一个分支中的特性意味着它的switch功能要比C语言的更加清晰和可预测,可以避免无意识地执行多个case分支从而引发的错误。fallthrough简单地使代码执行继续连接到下一个case中的执行代码,这和C语言标准中的switch语句特性是一样的。

  5. Swift基础语法: 24 - Swift的枚举语法, 匹配枚举值和 Switch 语句, 关联值, 原始值

    在前面,我们把函数和闭包解决完毕了,现在让我们来看看Swift中的枚举和Switch:1.枚举语法所谓的枚举其实就是定义一个通用类型的一组相关的值,使你可以在你的代码中以一个安全的方式来使用这些值。

  6. Swift教程11-条件分支循环语句_强大的Switch case

    Swift的条件分支语句与C语言的有一些不同,特别是Switch.Case语句.功能十分强大.1.if/else分支结构Swift中,ifelse语句你可以不用写那个每次都需要写的圆括号了,刚开始也许不习惯,但是习惯之后你却再也回不去了...Swift的if语句写法如下:但是请注意,请勿省略花括号,否则会报错!

  7. Swift学习—流程控制

    知识点:forin循环中的变量可以使用下划线_,意思是不需要用到此变量,系统就不会给变量分配存储空间switch中case后面必须有可执行的语句,如果有许多结果需要执行同一个语句的话,swift支持多条件匹配switch支持范围匹配switch可以匹配元组数据switch可以绑定数值switch中的case可以使用where来增加判断条件fallthrough关键字,当执行完前case后,会接着执行fallthrough后面的case或者default语句,fallthrough后面的case语句中的判断

  8. 【swift】15-0523 控制流---if switch

    而其他语言中不加break可能会继续往下执行。如果switch分支中没有语句的话,是语法错误。这么做的目的是防止switch语句进行贯穿。分支有多个条件都满足,用逗号分割,上面的”a”,”e”就是用逗号分割的。

  9. [翻译]Swift编程语言——控制流

    控制流for、while、if、switch和C基本一样for-in扩展forSwift的switch比C语言的要强大。当语句被执行后,index的值被范围内的第二个数字2替换,循环体内的语句被再次执行。for-int同样可以使用在遍历字符串中字符的情形下:for一般的形式:和C语言不同的就是缺少了圆括号。Swift提供两个格式的while:1:while在每次执行循环体前判断条件。如果到达或超过25号格子,循环条件检查为假,游戏结束。继续执行if括号后的内容。

  10. Swift流程控制语句

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部