Kotlin 异常处理(try...catch,finally)

时间:2022-12-15 13:54:26

一、Try…Catch
捕获分支异常的匹配类型
表达式,可以用来赋值

package net.println.kotlin.chapters

/** * @author:wangdong * @description:Try...catch举例 */
fun main(args: Array<String>){
    try {
        val arg1 = args[0].toInt()
        val arg2 = args[1].toInt()

        println("$arg1 + $arg2 = ${sum(arg1, arg2)}")
    } catch (e: NumberFormatException) {
        //将异常信息打印出来
        e.printStackTrace()
        println("您确定输入的是整数吗?")
    } catch (e: ArrayIndexOutOfBoundsException) {
        e.printStackTrace()
        println("您确定输入的是两个整数吗?")
    } catch (e: Exception) {
        println("程序出现了未知异常,可能是您的人品太差了。${e.message}")
        //finally总会执行的
    } finally {
        println("谢谢您使用我们的加法计算器")
    }
}

fun sum(arg1: Int, arg2: Int): Int {
    return arg1 + arg2
}

二、Finally
finally 无论代码是否抛出异常都是会执行的
注意下面的写法

val x: Int = 3;
    val y: Int = 4
    var z = 0
    try {
      z = x/y
    }catch (e: Exception){
        z = 0
        //finally无论如何都是会被执行到的
    }finally {
        println("程序执行完毕")
    }