Android Kotlin Exception处理
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118386817
本文出自【赵彦军的博客】
往期精彩文章
Android Coroutines Channels
Android Kotlin协程和Retrofit结合使用
Kotlin实战指南十六:Synchronized、Volatile
文章目录
- Throws Exception
- 自定义异常
- runCatching
- getOrDefault
- isSuccess、isFailure
- exceptionOrNull
- getOrNull
Throws Exception
Kotlin 的异常和 Java 的一样, try…catch…finally代码块处理异常,唯一一点不同是:Kotlin 的异常都是 Unchecked exceptions。
checked exceptions 是必须在方法上定义并且处理的异常,比如 Java 的 IoException。
Kotlin 抛出异常是使用 Throws 注解
来实现的,如下:
@Throws(IOException::class)
fun createDirectory(file: File) {if (file.exists())throw IOException("Directory already exists")file.createNewFile()
}
当我们在java代码中使用的时候,如下:
会提醒我们报错,但是如果在 kotlin 文件里使用的时候,就不会有提示。
自定义异常
/*** @author : zhaoyanjun* @time : 2021/7/5* @desc : 自定义异常*/
class CommonException(code: Int, message: String) : Exception(message)
使用:
@Throws(CommonException::class)
fun createDirectory(file: File) {if (file.exists())throw CommonException(0, "file is exists")file.createNewFile()
}
runCatching
class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)kotlin.runCatching {sum(2, 4)}.onSuccess {Log.d("yy--", "结果正常$it")}.onFailure {it.printStackTrace()Log.d("yy--", "结果异常${it.message}")}}fun sum(num1: Int, num2: Int): Int {1 / 0return num1 + num2}
}
getOrDefault
val result = kotlin.runCatching {sum(2, 4)}.onSuccess {Log.d("yy--", "结果正常$it")}.onFailure {it.printStackTrace()Log.d("yy--", "结果异常${it.message}")}.getOrDefault(100)//如果运行正常,就返回6,运行异常就返回100
Log.d("yy--", "结果$result")
isSuccess、isFailure
val result = kotlin.runCatching {sum(2, 4)}.onSuccess {Log.d("yy--", "结果正常$it")}.onFailure {it.printStackTrace()Log.d("yy--", "结果异常${it.message}")}.isFailure
exceptionOrNull
public fun exceptionOrNull(): Throwable? =when (value) {is Failure -> value.exceptionelse -> null}
如果有异常就返回异常,否则返回 Null
getOrNull
@InlineOnlypublic inline fun getOrNull(): T? =when {isFailure -> nullelse -> value as T}
如果失败了,就返回null ,否则正常返回
Android Kotlin Exception处理相关推荐
- Android Kotlin协程和Retrofit结合使用
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118085035 本文出自[赵彦军的博客] 往期精彩文章: Kotlin实战指南二十 ...
- Android Kotlin之Flow数据流
文章目录 Flow介绍 使用举例 常用操作符 创建操作符 回调操作符 变换操作符 过滤操作符 组合操作符 功能性操作符 末端操作符 冷流 vs 热流 SharedFlow shareIn将普通flow ...
- Android Kotlin okhttp Retrofit 线程协程那些事
这篇文章不是用来讲概念的, 只是用来谈论一些关于Android 进程\协程那些问题 1. android 子线程中的异常会引发crash闪退吗? 答案是会的 Thread{throw RuntimeE ...
- Android kotlin 大全
Android kotlin 大全 前言 kotlin 学习目录 总结 前言 在学习之前,我们先来了解一下kotlin,在这里,我不会再去介绍kotlin 的发展史,我们直接来说一下我个人对于kotl ...
- Android Kotlin - 监听耳机的插入和拔出
Android Kotlin - 监听耳机的插入和拔出 开发音乐应用时需要监听耳机的插入和拔出,用以调整音量或暂停播放. 采用注册广播的方式. 新建 HeadsetChangeReceiver 类 i ...
- android kotlin扩展添加域名
android kotlin扩展添加域名? 你是否常为和系统方法变量起名冲突而烦恼? 你是否常为过多的方法名查找起来而而困惑? 你是否常为不知道谁写出的垃圾代码而头痛? 今天,给大家介绍一种添加域名的 ...
- Android kotlin run函数学习
继续来看一下kotlin中run函数的应用,首先看一下源码: /*** Calls the specified function [block] and returns its result.** F ...
- Android: Kotlin 材料设计入门
原文:Android: Kotlin 材料设计入门 作者:Joe Howard 译者:kmyhy 更新说明:本教程由 Joe Howard 升级为 Kotlin.原教程作者是 Megha Bambra ...
- Android Kotlin
Android Kotlin 目录 一.什么是Android Kotlin? 二.为什么谷歌选择kotlin为Android开发官方语言? 三.Kotlin对新手开发者友好吗? 四.Kotlin有什么 ...
最新文章
- 对时间序列分类的LSTM全卷积网络的见解
- 微信小程序开发系列一:微信小程序的申请和开发环境的搭建
- Request.UrlReferrer详解
- win7下更改设置时间权限
- ACM入门之【树状数组习题】
- 将本地文件上传至Github【详细步骤】
- Linux基础(4)--用户与权限
- Kotlin 基本数据类型(五)
- 开源:Taurus.MVC 框架 (已支持.NET Core)
- 设计模式(1)单例模式(Singleton)
- 管理新语:软件工作考评的设计思路
- OpenLayers实例:打开ArcGIS Rest服务
- FireMonkey Control的Paint顺序
- 黑马畅购商城---9.Spring Security Oauth2 JWT授权
- 修改title旁边的小图标
- 手机充值业务python_小伙利用Python爆破某会员网站,充会员?不存在的!
- 关闭iOS上京东app不停询问“京东想从MF839粘贴”,您允许这样做吗? - 允许iphone应用访问剪切板
- 惠普刀片服务器型号,HP ProLiant刀片服务器简介
- 麻省理工学院的学生们愚弄了谷歌图像识别技术,计算机视觉算法仍然很容易被骗
- 在计算机领域中图形用户界面,带图形用户界面的计算机
热门文章
- linux乌邦图更改ip,Linux系统下图形界面更改IP地址分享
- 处理之后的图像句柄传到显示框_深度学习目标检测与预处理模块
- 手机cpu排行_鲁大师手机芯片排行榜:麒麟990第四,骁龙855第五!
- c语言实现辗除法,辗除法什么东西哦?
- 机器知道哪吒是部电影吗?解读阿里巴巴概念图谱AliCG
- 想快速发表CV/NLP论文?试试这几个方向!
- NAACL 2021 | QA-GNN:基于语言模型和知识图谱的问答推理
- 最新综述:多标签学习的新趋势
- 当深度学习遇上量化交易——公开信息篇
- 暑假没人带怎么办?还有我们为你推荐论文 | 本周值得读