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

异常

  • 异常
    • 异常类
    • 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"
}

你可能感兴趣的:(Kotlin,学习,基础学习,Kotlin,Kotlin异常,Kotlin异常类,Kotlin检查,Kotlin和Java互转)