Kotlin try-catch 块用于代码中的异常处理。 try块封装了可能引发异常的代码,并且catch块用于处理异常,此块必须写在方法中。必须在Kotlin try块后面紧接catch块或finally块。
try{ //可能抛出异常的代码 }catch(e: SomeException){ //处理异常的代码 }
try{ //可能抛出异常的代码 }finally{ // 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块来捕获上述问题。
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块的最后一个表达式或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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)