我开始学习Kotlin,我无法理解如何处理异常.我知道没有经过检查的,但无论如何,如果我的方法抛出一个,我该怎么办?例如:
fun test(a: Int, b: Int) : Int {
return a / b
}
Run Code Online (Sandbox Code Playgroud)
如果我除以零,我将有ArithmeticException.那我该怎么办呢?
您可以编写扩展函数以在装入异常时返回默认值.
fun <T> tryOrDefault(defaultValue: T, f: () -> T): T {
return try {
f()
} catch (e: Exception) {
defaultValue
}
}
fun test(a: Int, b: Int) : Int = tryOrDefault(0) {
a / b
}
Run Code Online (Sandbox Code Playgroud)
ArithmeticException是运行时异常,因此在Java中也将不对其进行检查。您选择的处理方式也与Java中的相同:
try-catch块将其包裹。您可以从发生的任何地方捕获它,而无需任何throws声明。由于在科特林没有检查异常,还没有一个throws关键字下去,但如果你是混合科特林和Java,并要强制异常处理在Java代码中检查的异常,你可以用你的注释方法@Throws的注释。
有关异常的信息,请参阅Kotlin官方文档。
另外,由于kotlin中的try-catach可以返回值,因此您的代码可能如下所示:
fun test(a: Int, b: Int) : Int {
return try {a / b} catch(ex:Exception){ 0 /*Or any other default value*/ }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10534 次 |
| 最近记录: |