Kotlin研发第二十二弹—— 异常

26 篇文章 0 订阅
25 篇文章 0 订阅

异常

  • 异常
    • 异常类
    • try是一个表达式
    • 检查异常
    • java互动

异常

异常类

所有的异常类都是Exception的子类,每个异常都有个消息,栈踪迹和可选的原因

使用throw表达式,抛出异常

throw Exception("出错啦")

使用try捕获异常

try{}catch(e:Exception)finally{}

有可能不止一个catch块,finally块可以省略

val a:Int?=try{parseInt(input)}catch(e:Exception){null}

检查异常

Kotlin中国没有异常检查,这是由多种原因导致的

下面是JDKStringBuilder类实现的一个接口

Appendable append(CharSequence csq) throws IOException;

这个签名说明什么?它说明每次我把String添加到什么东西(StringBuilder或者log console等等)上时都会捕获IoException,因为可能涉及到IO操作(Writer实现了Appendable)所以导致Appendable的接口都得捕获异常

这样是不利的,参看Effective java

Java互动

java

int score = // some score;
String grade;

switch (score) {
    case 10:
    case 9:
        grade = "Excellent";
        break;
    case 8:
    case 7:
    case 6:
        grade = "Good";
        break;
    case 5:
    case 4:
        grade = "Ok";
        break;
    case 3:
    case 2:
    case 1:
        grade = "Fail";
        break;
    default:
        grade = "Fail";               
}

kotlin

var score = // some score
var grade = when (score) {
    9, 10 -> "Excellent"
    in 6..8 -> "Good"
    4, 5 -> "Ok"
    in 1..3 -> "Fail"
    else -> "Fail"
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值