如何处理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 }