Kotlin - Try Catch异常

Kotlin - Try Catch异常 首页 / Kotlin入门教程 / Kotlin - Try Catch异常

Kotlin  try-catch 块用于代码中的异常处理。 try块封装了可能引发异常的代码,并且catch块用于处理异常,此块必须写在方法中。必须在Kotlin try块后面紧接catch块或finally块。

try catch语法

try{  
//可能抛出异常的代码
}catch(e: SomeException){
//处理异常的代码
}  

try finally 语法

try{  
//可能抛出异常的代码
}finally{
// finally 代码块,不管抛不抛异常都会执行
}  

try catch和finally语法

try {
   //代码块
}
catch (e: SomeException) {
   //异常处理
}
finally {
   //可选的 finally 块
}

没有捕获异常

无涯教程来看一个导致未处理异常的示例。

fun main(args: Array<String>){
    val data = 20/0   //这里会抛出异常
    println("code below exception ...")
}

上面的程序生成异常,导致剩余的代码下方不可执行。

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/kotlin/kotlin-try-catch.html

来源:LearnFk无涯教程网

输出:

Exception in thread "main" java.lang.ArithmeticException:/by zero
	at ExceptionHandlingKt.main(ExceptionHandling.kt:2)

Try-catch捕获异常

让无涯教程通过使用try-catch块来捕获上述问题。

fun main(args: Array<String>){
    try {
        val data = 20/0  //这里抛出异常
    } catch (e: ArithmeticException) {
        println(e)
    }
    println("code below exception...")
}

输出:

java.lang.ArithmeticException:/by zero
code below exception...

在上面的程序中,执行try-catch块后,将执行异常下面的其余代码。

Try表达式

无涯教程可以使用 try 块作为返回值的表达式。 try表达式返回的值是try块的最后一个表达式或catch的最后一个表达式。 finally块内容不影响表达式结果。

让无涯教程看一下try-catch块作为返回值的表达式的示例。在此示例中,Int的字符串值不生成任何异常,并返回try块的最后一条语句。

fun main(args: Array<String>){
val str = getNumber("10")
    println(str)
}
fun getNumber(str: String): Int{
    return try {
        Integer.parseInt(str)
    } catch (e: ArithmeticException) {
        0
    }
}

输出:

10

让无涯教程修改上面的代码,生成一个异常并返回catch块的最后一条语句。

fun main(args: Array<String>){
val str = getNumber("10.5")
    println(str)
}
fun getNumber(str: String): Int{
    return try {
        Integer.parseInt(str)
    } catch (e: NumberFormatException) {
        0
    }
}

输出:

0

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

TypeScript开发实战 -〔梁宵〕

苏杰的产品创新课 -〔苏杰〕

摄影入门课 -〔小麥〕

互联网人的英语私教课 -〔陈亦峰〕

Selenium自动化测试实战 -〔郭宏志〕

Vim 实用技巧必知必会 -〔吴咏炜〕

技术管理案例课 -〔许健〕

手把手带你写一门编程语言 -〔宫文学〕

深入浅出分布式技术原理 -〔陈现麟〕

好记忆不如烂笔头。留下您的足迹吧 :)