如何处理Kotlin中的exception?
我开始学习Kotlin,我无法理解如何处理exception。 我知道有没有检查的,但无论如何,如果我的方法抛出一个,我该怎么办? 例如:
fun test(a: Int, b: Int) : Int { return a / b }
如果我除以零,我会有ArithmeticException。 那么我应该如何处理这样的事情呢?
ArithmeticException
是一个运行时exception,因此它也将在Java中被取消选中。 您的处理选择与Java中的一样:
- 忽略它,并在运行时崩溃
- 用
try-catch
块包装它。 你可以从任何地方捕捉到它,你不需要任何throws
声明。
由于在Kotlin中没有检查exception,所以也没有throws
关键字,但是如果您将Kotlin和Java混合在一起,并且想要在Java代码中强制执行检查exception的exception处理,则可以使用@Throws
注释。
在这里查看关于exception的官方Kotlin文档。
作为一个加号,因为kotlin中的try-catach可以返回值,你的代码可能看起来像这样:
fun test(a: Int, b: Int) : Int { return try {a / b} catch(ex:Exception){ 0 /*Or any other default value*/ } }
您可以编写一个扩展函数来在加载exception时返回一个默认值。
fun tryOrDefault(defaultValue: T, f: () -> T): T { return try { f() } catch (e: Exception) { defaultValue } } fun test(a: Int, b: Int) : Int = tryOrDefault(0) { a / b }