为啥scala 编译时异常可以不用捕获
ce只是一个编译时的检测,没有强制性。Scala觉得Java里这个特性太毒瘤了,就没有加入这个特性
■网友
不用捕获是因为Scala 编译器不做这方面检查啊,自然你不捕获不抛出也能过编译。至于为什么Scala 编译器不检查异常,是因为语言设计者们认为异常不是好的错误处理实践。理由如下:
【为啥scala 编译时异常可以不用捕获】 1,异常会打断执行流,因此不是类型安全的
2,异常不利于类型推断
3,从实践来看,大部分程序员并不会认真处理异常,不是catch下打个log就是继续往外throw了事,结果就是又臭又长的throw
4, 丑,这是原罪。
Scala 鼓励使用类型来表示错误信息,例如Option与Future ,Either, 选择与未来(:-D),这样控制流里你可以带着错误信息一直往下走,直到一个能优雅处理错误的位置。
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸