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 初学者空安全与异常

Kotlin空安全 ① ( Kotlin 的空安全机制 | 变量可空性 | 默认变量不可赋空值 | 声明可空类型变量 )

Kotlin中空安全操作符,异常处理和自定义异常,以及先决条件函数详解