美文网首页
Kotlin异常处理(4)throw与显示抛出异常

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

作者: 狼性代码人 | 来源:发表于2019-06-17 10:56 被阅读0次

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

    throw Throwable 或其子类的示例
    

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

    fun main(args: Array<String>?) {
        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与显示抛出异常

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