try-cacth-finally ArrayIndexOutOfBoundsException,program go on,kotlin

try-cacth-finally ArrayIndexOutOfBoundsException,program go on,kotlin

fun sub(size: Int): List<Int> {
    val l = listOf(1, 2, 3)
    var list = l.subList(0, size)
    return list
}

fun okgo(): List<Int> {
    var list = emptyList<Int>()
    try {
        list = sub(999)
    } catch (e: Exception) {
        e.printStackTrace()
    } finally {
        return list
    }
}

fun main(args: Array<String>) {
    val list = okgo()

    //即便kotlin发生数组越界,异常捕获后,后面代码继续执行
    println("go")
    println("${list.size}")
}

 

java.lang.IndexOutOfBoundsException: toIndex = 999
    at java.base/java.util.AbstractList.subListRangeCheck(AbstractList.java:509)
    at java.base/java.util.AbstractList.subList(AbstractList.java:499)
    at MainKt.sub(Main.kt:3)
    at MainKt.okgo(Main.kt:10)
    at MainKt.main(Main.kt:19)
go
0

猜你喜欢

转载自blog.csdn.net/zhangphil/article/details/129837973
go