Kotlin try-catch语句

本文概述

  • 没有异常处理的问题
  • 通过异常处理解决
  • Kotlin尝试将块作为表达式
【Kotlin try-catch语句】Kotlin try-catch块用于代码中的异常处理。 try块封装了可能引发异常的代码, 并且catch块用于处理异常。该块必须写在方法中。必须在Kotlin try块后接catch块, finally块或两者。
try with catch块的语法
try{//code that may throw exception}catch(e: SomeException){//code that handles exception}


try{//code that may throw exception}finally{// code finally block}

try catch和finally块的语法
try {// some code}catch (e: SomeException) {// handler}finally {// optional finally block}

没有异常处理的问题我们来看一个导致未处理异常的示例。
fun main(args: Array< String> ){val data = http://www.srcmini.com/20 / 0//may throw exceptionprintln("code below exception ...")}

上面的程序生成一个异常, 该异常导致低于该异常的其余代码不可执行。
输出:
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 = http://www.srcmini.com/20 / 0//may throw exception} catch (e: ArithmeticException) {println(e)}println("code below exception...")}

输出:
java.lang.ArithmeticException: / by zerocode below exception...

在上面的程序中, 在执行try-catch块之后, 将执行异常下面的其余代码。
Kotlin尝试将块作为表达式我们可以使用try块作为返回值的表达式。 try表达式返回的值是try块的最后一个表达式或catch的最后一个表达式。 finally块的内容不影响表达式的结果。
Kotlin尝试作为表达示例
让我们看一下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

    推荐阅读