发布于 2017-08-26 22:28:39 | 172 次阅读 | 评论: 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 表达式的结果值.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!