scala – 是否等同于检查异常?
从
Scala开始阅读关于我自然将新概念与我所知道的(在这种情况下来自
Java)相比较.与检查异常的概念有任何差异吗?
在这两种情况下 >在方法中明确地注释了失败的可能性(抛出或返回两个) 我想一个使用for-comprehension来编写代码,因为没有类似于检查的异常的错误. 我不知道我是唯一有问题的初学者,看看这个差异. 谢谢 解决方法
不仅可以用于异常.例如,如果您要让用户输入或输入包含该输入的文件,则可以将其表示为[String,File].
或者经常用于异常处理.任何一种和检查的异常之间的主要区别在于使用Either的控制流始终是明确的.编译器真的不会让你忘记你正在处理一个;它不会从多个地方收集任何东西,如果你没有意识到,返回的所有东西都必须是一个等等.因为这样,你可以不使用或许不是特别的东西会出错,但作为一个正常的部分控制程序执行.而且,不要捕获堆栈跟踪,使其比典型的异常更有效率. 另外一个区别是异常可以用于控制流程.需要跳出三个嵌套循环?没有问题 – 抛出一个异常(没有堆栈跟踪)并在外面抓住它.需要跳出五个嵌套方法调用?没问题!或者不提供这样的东西. 也就是说,正如你所指出的,有许多相似之处.你可以传回信息(尽管这样做是微不足道的,但被检查的例外会使你写出自己的类来存储你想要的任何额外的信息);你可以通过,或者你可以把它折成别的东西等. 所以,总而言之:尽管您可以使用任何一种和检查异常来处理与显式错误处理相同的事情,但它们在实践中是相对不同的.特别是,创建和传回不同的状态真的很容易,而检查的异常很好地绕过你所有的正常控制流程,以回到希望可以理解一个非凡的条件的地方. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angular – 如何在rxjs6中导入ErrorObservable或_throw?抛
- configure.in详解
- 在Scala中反转Map(String – > List)
- shell脚本 – 创建一个mysql数据库
- 将unix文件备份到不允许chgrp / chown等的文件系统
- Angular 2 – 订阅Observable.fromEvent错误:“无效的事件
- angularjs – 在compiler_1中获取ERROR.StaticSymbolResolv
- 单元测试 – 测试可观察对象角度2业力
- Shell中的sed命令
- angularjs – 在Restangular中发送GET参数