美文网首页
Kotlin学习笔记 - 异常

Kotlin学习笔记 - 异常

作者: 全栈Evan | 来源:发表于2018-09-06 16:09 被阅读0次

    前言

    由于Kotlin的异常处理机制的语法和Java基本一样,所以这里只记录Kotlin和Java的不同点

    Kotlin 与 Java 的异常处理机制的不同点

    1、try语句是表达式

    val str = "abc123"
    /*
     * try表达式的返回值是try或catch代码块中的最后一个表达式的值
     * finally代码块不会影响表达式的结果
     */
    val result = try {
        Integer.parseInt(str)
    } catch (e: Exception) {
        null
    }
    println("result = $result") // 输出结果:result = null
    

    2、Kotlin没有checked异常

    fun main(args: Array<String>) {
        // 程序编译不会报错,但是因为程序抛出了异常并没有被捕获,所以会导致程序crash
        println("start")
        throwException()
        throwRuntimeException()
        println("end")
    }
    
    fun throwException() {
        println("throw checked Exception")
        throw Exception("checked exception")
    }
    
    fun throwRuntimeException() {
        println("throw runtime Exception")
        throw RuntimeException("runtime exception")
    }
    

    3、throw语句是表达式

    throw表达式的类型是 Nothing,Nothing 类型没有值,而是用于标记永远无法真正返回的表达式

    • 示例1:
    val num: Int? = null
    val rlt = num ?: throw NullPointerException()
    
    • 示例2:
    fun main(args: Array<String>) {
        val num: Int? = null
        val rlt = num ?: test()
    }
    
    fun test(): Nothing {
        throw NullPointerException()
    }
    

    相关文章

      网友评论

          本文标题:Kotlin学习笔记 - 异常

          本文链接:https://www.haomeiwen.com/subject/hamxgftx.html