第十章 Kotlin之异常
2018-03-30 本文已影响24人
红尘丶
异常类
如你所想,kotlin中所有的异常类跟java一样,都是Throwable类的后代。每个异常类都有消息,堆栈信息。
表现形式,雷同java:
throw Exception( errorMsg ) //不需new关键字
或
try{
//业务代码
}catch( e : Exception ){
//处理异常
}finally{
//可选
}
Try表达式
try表达式返回值是,try的最后一个表达式或者catch块中最后一个表达式。
![](https://img.haomeiwen.com/i1858735/434ec480670cdb98.png)
Nothing特殊类型
在kotlin中throw也属于表达式,它的类型就是nothing类型,该类型没有值。
var temp = a ?: throw Exception("a is null") //返回a的值,或抛异常
可以用nothing来标记一个永远不会返回的函数,通常用来抛异常:
![](https://img.haomeiwen.com/i1858735/c296fff26062aa26.png)
官方解释:
![](https://img.haomeiwen.com/i1858735/e57c55d08f8037de.png)
上述temp语句,表示如下:
![](https://img.haomeiwen.com/i1858735/c1e39fef5e749a0b.png)
kotlin中,定义null属于nothing类型:
![](https://img.haomeiwen.com/i1858735/5978c1c20ce6fbf3.png)
实际使用kotlin开发中,由于有严格的空安全,个人拙见感觉用处不大。