有什么简单的方法来看看Kotlin函数抛出什么异常?

我主要了解检查异常的潜在问题,以及Kotlin忽略它们的原因。 然而,我遇到的问题是我找不到任何清楚地向调用者指出函数可能抛出什么异常的万无一失的方式。

我已经在Python中遇到了无数次的问题,我的程序在运行好几个月后会崩溃,因为我没有意识到我正在使用某个库的函数会引发特定的异常。 尽管被迫捕捉异常可能是相当有问题的,但是清楚地看到函数可能抛出的所有可能异常是很好的。

所以回到这个问题,有什么简单的方法来看看函数在Kotlin中抛出什么异常? 那么从Kotlin调用Java编写的方法呢? 即使只是在工具(intelliJ)。 我不想把它写在javadoc或kdoc中,因为你正在使用的函数的编写者可能会忽略它。

如果您想知道Java方法从IntelliJ调用Kotlin时引发的异常,您可以使用F1快捷键来提取javadoc并在弹出式菜单中查看throws声明。

Kotlin函数可以声明使用@Throws注释抛出的异常 。 注释显然是可选的,所以你可能不能指望这一直存在。 不幸的是,在使用@Throws的方法上使用F1键盘快捷方式时,它不会显示声明要抛出的异常。 Java调用这些方法需要捕获注释中声明的这些异常。

Kotlin javadoc可以使用@throws javadoc注释来进一步提供可以在函数中抛出的定义异常。 这些确实出现在javadoc和F1帮助弹出窗口中。 当然这也是可选的。

这个名为Result的库是一个很好的解决方案。 它返回一个带有值或异常的Result对象,并相应地将其类型改为成功或失败。 他们也可以链接在一起使用库地图和flatmap函数,这有助于消除嵌套的try-catch块。 非常酷,我建议任何人发现这个问题检查出来。

当然,这只会对利用它的函数有所帮助,所以我不会将其标记为答案。