前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Kotlin】空安全 ⑤ ( 异常处理 | 捕获并处理异常 | 抛出自定义异常 )

【Kotlin】空安全 ⑤ ( 异常处理 | 捕获并处理异常 | 抛出自定义异常 )

作者头像
韩曙亮
发布2023-03-30 18:39:38
7880
发布2023-03-30 18:39:38
举报
在这里插入图片描述
在这里插入图片描述

文章目录

一、Kotlin 中的异常处理


在 Kotlin 程序中 , 处理异常 的方式有 :

  • 抛出默认异常
  • 抛出自定义异常
  • 捕获并处理异常

1、捕获并处理异常

捕获异常代码示例 : 在下面的代码中 ,

name 变量是可空类型变量 , 其初始值为 null ,

使用 非空断言操作符 !! 调用 变量 成员 , 不会进行 空值检查 ,

如果变量为空 , 则直接抛出 kotlin.KotlinNullPointerException 异常 ;

使用 try .. catch .. 代码块 , 可以捕获并处理异常 ;

代码语言:javascript
复制
import java.lang.Exception

fun main() {
    var name: String? = null

    // 捕获并处理异常
    try {
        name!!.count();
    } catch (e: Exception) {
        println(e)
    }
}

执行结果 :

代码语言:javascript
复制
kotlin.KotlinNullPointerException
在这里插入图片描述
在这里插入图片描述

2、抛出自定义异常

抛出自定义异常代码示例 : 在下面的代码中 ,

声明了自定义 异常类 MyException , 其继承了 KotlinNullPointerException 空指针异常类 ,

在调用 name 变量成员时 , 先调用 checkNull 函数 ,

检查该变量是否为空 ,

使用 str ?: throw MyException() 代码 , 其中 空合并操作符 判定 str 是否为空 ,

如果为空 , 则抛出 MyException 异常 ;

代码语言:javascript
复制
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("空指针")

执行结果 :

代码语言:javascript
复制
MyException: 空指针
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Kotlin 中的异常处理
    • 1、捕获并处理异常
      • 2、抛出自定义异常
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档