1 Star 0 Fork 2

chenjim / kotlin-for-android-developers-zh

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
yi_chang_ff08_exceptions.md 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
WangJie 提交于 2015-11-05 11:12 . Update yi_chang_ff08_exceptions.md

异常(Exceptions)

在Kotlin中,所有的Exception都是实现了Throwable,含有一个message且未经检查。这表示我们不会强迫我们在任何地方使用try/catch。这与Java中不太一样,比如在抛出IOException的方法,我们需要使用try-catch包围代码块。通过检查exception来处理显示并不是一个好的方法。像Bruce EckelRod WaldhoffAnders Hejlsberg等人可以给你关于这个更好的观点。

抛出异常的方式与Java很类似:

throw MyException("Exception message")

try表达式也是相同的:

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

在Kotlin中,throwtry都是表达式,这意味着它们可以被赋值给一个变量。这个在处理一些边界问题的时候确实非常有用:

val s = when(x){
	is Int -> "Int instance"
	is String -> "String instance"
	else -> throw UnsupportedOperationException("Not valid type")
}

或者

val s = try { x as String } catch(e: ClassCastException) { null }
1
https://gitee.com/chenjim/kotlin-for-android-developers-zh.git
git@gitee.com:chenjim/kotlin-for-android-developers-zh.git
chenjim
kotlin-for-android-developers-zh
kotlin-for-android-developers-zh
master

搜索帮助