发布于 2017-08-26 22:28:39 | 156 次阅读 | 评论: 0 | 来源: 网友投递
Kotlin 基于JVM的编程语言
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。
Kotlin 基础教程之异常
概述
在Kotlin-null的处理里提到的NPE,它就是一个异常。而,异常是程序运行过程中出现的错误。在Kotlin中,所有的异常都继承于Throwable。对于每一个异常而言,它不仅仅包括异常的信息,还可以选择性包括异常的原因,而其原因也是一个异常的实例。
抛出异常
使用 throw表达式抛出异常:
throw MyException("Hi There!")
捕获异常
如果在函数内部抛出了异常(或者在函数内部调用的其他函数抛出了异常),这个函数将在抛出异常的地方结束。如果不希望函数结束,此时就必须捕获这个被抛出的异常并处理这个异常。
在Kotlin中,要捕获异常, 可以使用 try 表达式:
try {
// 某些代码
}
catch (e: SomeException) {
// 异常处理
}
finally {
// 可选的 finally 代码段
}
注:
自定义异常
在Kotlin标准库中封装的异常类型,不可能会预见所有的可能碰见的异常情况,此时自己定义异常,来表示程序中可能出现的特定问题。
如果想自定义异常,就必须继承现有的异常类,一般都继承其异常情况相似的类,建立异常类型最简单的方法就是使用编辑器产生默认的构造方法,这样简单而有效。
fun main(args: Array<String>) {
var b: String? = null
try {
b?.length ?: throw MyExcepttion("b不能为空")
} catch (ex: MyExcepttion) {
println("ex: ${ex.message}")
} catch (npe: NullPointerException) {
println("npe: ${npe.message}")
} finally {
println("finally")
}
}
public class MyExcepttion(override val message: String) : Throwable(){
}
// Log
ex: b不能为空
finally
try表达式
在Kotlin中try是一个表达式, 也就是说, 它可以有返回值.
val a: Int? = try { parseInt(input) } catch (e: NumberFormatException) { null }
try表达式的返回值, 要么是try代码段内最后一个表达式的值,要么是 catch代码段内最后一个表达式的值. finally代码段的内容不会影响 try 表达式的结果值.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!