Kotlin异常处理(4)throw与显示抛出异常

  大部分情况下我们接触到的异常都是由系统生成的。但也可以通过 throw 语句主动的抛出异常,语法格式如下:

throw Throwable 或其子类的示例

  所有 Throwable 或其子类的实例都可以用 throw 语句抛出。
  显示抛出异常的作用有很多,例如不像某些异常传给上层调用者,可以捕获之后重新显示抛出另外一种异常给调用者。

fun main(args: Array?) {
    try {
        val date = readDate()
        println("读取的日期 = $date")
    } catch (e: MyException) {
        println("处理 MyException...")
        e.printStackTrace()
    }
}

class MyException : Exception {
    constructor() {}
    constructor(message: String) : super(message)
}

private fun readDate(): Date? {
    try {
        FileInputStream("readme.txt").use {
            InputStreamReader(it).use {
                BufferedReader(it).use {
                    // 读取文件中的一行数据
                    val str = it.readLine() ?: return null
                    val df = SimpleDateFormat("yyyy-MM-dd")
                    return df.parse(str)
                }
            }
        }

    } catch (e: FileNotFoundException) {
        throw MyException()
    } catch (e: IOException) {
        throw MyException()
    } catch (e: ParseException) {
        throw MyException()
    }
    return null
}

你可能感兴趣的:(Kotlin异常处理(4)throw与显示抛出异常)