这期内容当中小编将会给大家带来有关深入浅析Kotlin中的异常,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联建站始终坚持【策划先行,效果至上】的经营理念,通过多达十余年累计超上千家客户的网站建设总结了一套系统有效的全网营销解决方案,现已广泛运用于各行各业的客户,其中包括:自上料搅拌车等企业,备受客户表扬。
Kotlin 基础教程之异常
概述
在Kotlin-null的处理里提到的NPE,它就是一个异常。而,异常是程序运行过程中出现的错误。在Kotlin中,所有的异常都继承于Throwable。对于每一个异常而言,它不仅仅包括异常的信息,还可以选择性包括异常的原因,而其原因也是一个异常的实例。
抛出异常
使用 throw表达式抛出异常:
throw MyException("Hi There!")
捕获异常
如果在函数内部抛出了异常(或者在函数内部调用的其他函数抛出了异常),这个函数将在抛出异常的地方结束。如果不希望函数结束,此时就必须捕获这个被抛出的异常并处理这个异常。
在Kotlin中,要捕获异常, 可以使用 try 表达式:
try { // 某些代码 } catch (e: SomeException) { // 异常处理 } finally { // 可选的 finally 代码段 }
注:
自定义异常
在Kotlin标准库中封装的异常类型,不可能会预见所有的可能碰见的异常情况,此时自己定义异常,来表示程序中可能出现的特定问题。
如果想自定义异常,就必须继承现有的异常类,一般都继承其异常情况相似的类,建立异常类型最简单的方法就是使用编辑器产生默认的构造方法,这样简单而有效。
fun main(args: Array) { var b: String? = null try { b?.length ?: throw MyExcepttion("b不能为空") } catch (ex: MyExcepttion) { println("ex: ${ex.message}") } catch (npe: NullPointerException) { println("npe: ${npe.message}") } finally { println("finally") } } public class MyExcepttion(override val message: String) : Throwable(){ } // Log ex: b不能为空 finally
try表达式
在Kotlin中try是一个表达式, 也就是说, 它可以有返回值.
val a: Int? = try { parseInt(input) } catch (e: NumberFormatException) { null }
try表达式的返回值, 要么是try代码段内最后一个表达式的值,要么是 catch代码段内最后一个表达式的值. finally代码段的内容不会影响 try 表达式的结果值.
上述就是小编为大家分享的深入浅析Kotlin中的异常了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。