1. 普通处理异常
这种是普通的写法,明了的处理异常
Kotlin也支持多个catch捕获
1 2 3 4 5 6 7 8 9 10 11
| try { throw Throwable("Diy Exception") } catch (e: Exception) { print("Exception-> ${e.message}") } finally { print("finally") }
|
2. inline模式处理异常
封装处理不会导致程序异常终止, 易于使用, 提供代码质量和开发效率
吐槽一点 kotlin 不支持异常检查很不好, 需要人去识别可能出现的各种异常, 在对接各类功能接口很容易被忽略异常
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| fun main() { var p = Person() p.name = null nameCatch(action = { val n: String = p.name ?: fail("name is null") }, exceptionFinally = { print("exceptionFinally") }) print("================") print(5) print("================") }
inline fun nameCatch(action: () -> Unit, exceptionFinally: () -> Unit) { try { action() } catch (e: Exception) { print("inline try catch -> ${e.message}") } finally { exceptionFinally() } }
|