Kotlin空安全 ⑤ ( 异常处理 | 捕获并处理异常 | 抛出自定义异常 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin空安全 ⑤ ( 异常处理 | 捕获并处理异常 | 抛出自定义异常 )相关的知识,希望对你有一定的参考价值。
文章目录
一、Kotlin 中的异常处理
在 Kotlin 程序中 , 处理异常 的方式有 :
- 抛出默认异常
- 抛出自定义异常
- 捕获并处理异常
1、捕获并处理异常
捕获异常代码示例 : 在下面的代码中 ,
name
变量是可空类型变量 , 其初始值为 null
,
使用 非空断言操作符 !!
调用 变量 成员 , 不会进行 空值检查 ,
如果变量为空 , 则直接抛出 kotlin.KotlinNullPointerException
异常 ;
使用 try .. catch ..
代码块 , 可以捕获并处理异常 ;
import java.lang.Exception
fun main()
var name: String? = null
// 捕获并处理异常
try
name!!.count();
catch (e: Exception)
println(e)
执行结果 :
kotlin.KotlinNullPointerException
2、抛出自定义异常
抛出自定义异常代码示例 : 在下面的代码中 ,
声明了自定义 异常类 MyException
, 其继承了 KotlinNullPointerException
空指针异常类 ,
在调用 name
变量成员时 , 先调用 checkNull
函数 ,
检查该变量是否为空 ,
使用 str ?: throw MyException()
代码 , 其中 空合并操作符 判定 str
是否为空 ,
如果为空 , 则抛出 MyException
异常 ;
import java.lang.Exception
fun main()
var name: String? = null
// 捕获并处理异常
try
checkNull(name)
name!!.count();
catch (e: Exception)
println(e)
fun checkNull(str: String?)
str ?: throw MyException()
class MyException: KotlinNullPointerException("空指针")
执行结果 :
MyException: 空指针
以上是关于Kotlin空安全 ⑤ ( 异常处理 | 捕获并处理异常 | 抛出自定义异常 )的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 协程协程异常处理 ⑤ ( 异常传播的特殊情况 | 取消子协程示例 | 子协程抛出异常后父协程处理异常时机示例 | 异常聚合 | 多个子协程抛出的异常会聚合到第一个异常中 )
Kotlin 协程协程异常处理 ⑤ ( 异常传播的特殊情况 | 取消子协程示例 | 子协程抛出异常后父协程处理异常时机示例 | 异常聚合 | 多个子协程抛出的异常会聚合到第一个异常中 )
Kotlin空安全 ① ( Kotlin 的空安全机制 | 变量可空性 | 默认变量不可赋空值 | 声明可空类型变量 )