Kotlin学习笔记(4)--异常处理

异常处理

异常(Exception) 是在程序执行过程中发生的错误事件,它打断了程序的正常执行流程。在 Kotlin 中,异常主要有:

  • 不可检查异常(Unchecked Exceptions):在运行时发生的异常,包括运行时异常(RuntimeException)及其子类。Kotlin 不支持 Java 中的可检查异常(Checked Exceptions),这意味着在 Kotlin 中不需要在方法签名中声明可能抛出的异常,也不需要强制捕获异常。

Try 和 Catch

try 块用于包裹可能抛出异常的代码,catch 块用于捕捉和处理异常。

fun main() {
    val number = readLine() ?: "0"
    val parseNumber = try {
        number.toInt()
    } catch (e: NumberFormatException) {
        println("输入的不是有效的整数,默认值 0")
        0
    }
    println("解析后的数字是 $parseNumber")
}

Finally 块:

finally 块中的代码无论是否抛出异常都会执行,常用于资源释放。

fun main() {
    try {
        // 可能抛出异常的代码
    } catch (e: Exception) {
        // 处理异常
    } finally {
        // 资源释放等操作
    }
}

抛出异常

在 Kotlin 中,可以使用 throw 关键字手动抛出异常。

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("年龄不能为负数")
    }
}

fun main() {
    try {
        validateAge(-5)
    } catch (e: IllegalArgumentException) {
        println(e.message) // 输出: 年龄不能为负数
    }
}

自定义异常

可以定义自己的异常类,继承自 Exception 或其子类。

class InvalidInputException(message: String) : Exception(message)

fun validateInput(input: String) {
    if (input.isEmpty()) {
        throw InvalidInputException("输入不能为空")
    }
}
posted @ 2024-10-19 19:18  Jacob-Chen  阅读(59)  评论(0)    收藏  举报