Kotlin 控制流程-异常

1、异常类

Kotlin 中所有异常类继承自 Throwable 

2、Nothing 类型

Nothing 类型没有值,只用于标记永远不能达到的代码位置 (在代码中,可用 Nothing 来标记一个永远不会返回的函数)

// 使用 Nothing 来标记一个永远不会返回的函数
fun fail(message: String): Nothing {
    throw IllegalArgumentException(message)
}
// 当调用该函数时,编译器会知道在该调用后就不再继续执行了
val s = person.name ?: fail("Name required")
println(s)     // 在此已知“s”已初始化

Nothing? 是 Nothing的可空变体,有一个可能的值是 null

// 如果用 null 来初始化一个要推断类型的值,而又没有其他信息可用于确定更具体的类型时,
// 编译器会推断出 Nothing? 类型
val x = null           // “x”具有类型 `Nothing?`
val l = listOf(null)   // “l”具有类型 `List<Nothing?>
3、Throw

throw 是一个表达式,类型是 Nothing 类型

使用 throw 表达式抛出异常

fun demo() {
    throw Exception("Error here!")
}
4、Try

try 是一个表达式,意味着它可以有一个返回值;返回值是try 块中的最后一个表达式或者是(所有)catch 块中的最后一个表达式finally 块中的内容不会影响表达式的结果) 

val a: Int? = try { input.toInt() } catch (e: NumberFormatException) { null }

使用 try……catch 表达式捕获异常 

try {
    // 一些代码
} catch (e: SomeException) {
    // 处理程序
} finally {
    // 可选的 finally 块
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值