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 ...")
}

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

输出:

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块的最后一条语句。

无涯教程网

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

来源:LearnFk无涯教程网

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

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

技术教程推荐

技术领导力实战笔记 -〔TGO鲲鹏会〕

从0开始学架构 -〔李运华〕

快速上手Kotlin开发 -〔张涛〕

重学前端 -〔程劭非(winter)〕

移动端自动化测试实战 -〔思寒〕

罗剑锋的C++实战笔记 -〔罗剑锋〕

性能优化高手课 -〔尉刚强〕

说透芯片 -〔邵巍〕

林外 · 专利写作第一课 -〔林外〕

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