为什么scala 编译时异常可以不用捕获
1个回答
展开全部
不用捕获是因为Scala 编译器不做这方面检查啊,自然你不捕获不抛出也能过编译。至于为什么Scala 编译器不检查异常,是因为语言设计者们认为异常不是好的错误处理实践。理由如下:
1,异常会打断执行流,因此不是类型安全的
2,异常不利于类型推断
3,从实践来看,大部分程序员并不会认真处理异常,不是catch下打个log就是继续往外throw了事,结果就是又臭又长的throw
4, 丑,这是原罪。
Scala 鼓励使用类型来表示错误信息,例如Option与Future ,Either, 选择与未来(:-D),这样控制流里你可以带着错误信息一直往下走,直到一个能优雅处理错误的位置。
1,异常会打断执行流,因此不是类型安全的
2,异常不利于类型推断
3,从实践来看,大部分程序员并不会认真处理异常,不是catch下打个log就是继续往外throw了事,结果就是又臭又长的throw
4, 丑,这是原罪。
Scala 鼓励使用类型来表示错误信息,例如Option与Future ,Either, 选择与未来(:-D),这样控制流里你可以带着错误信息一直往下走,直到一个能优雅处理错误的位置。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询