【发布时间】:2021-09-15 08:47:31
【问题描述】:
在Java 中很容易知道何时必须try - catch 一段代码,因为编译器强制你这样做,并且方法声明有throws 关键字和Exceptions 将被抛出。
例如:
void testMethod() throws Exception {
throw new Exception("test");
}
但在 Kotlin 中会是这样的:
fun testMethod() {
throw Exception("test")
}
在 Kotlin 中我如何知道某个类提供的一段代码需要为某个 Exception 处理?
我不知道我是否必须处理Exception,或者我是否可以更具体地处理IOExcepcion
2021 年 9 月 16 日编辑:
经过更多的调查,我发现这个“问题”没有解决办法。
2016 年有一个相关问题面临同样的问题:Is there any easy way to see what exceptions a Kotlin function throws?
这个答案很好地恢复了可以做的事情:
如果您想知道 Java 方法在调用时会抛出哪些异常 来自 IntelliJ 的 Kotlin,您可以使用 F1 快捷键拉起 javadoc 并在弹出菜单中查看 throws 声明。
Kotlin 函数可以声明它抛出的异常,使用 @Throws 注释。注释显然是可选的,所以你 可能不能指望这会一直存在。不幸的是,当你 在使用 @Throws 的方法上使用 F1 键盘快捷键,它不会 显示声明要抛出的异常。 Java 调用这些 需要方法来捕获在 注释。
Kotlin javadoc 可以使用@throws javadoc 注解进一步 提供可以在函数中抛出的定义异常。这些 确实出现在 javadoc 和 F1 帮助弹出窗口中。当然这也是 可选。
【问题讨论】:
-
@IR42 感谢您提供文档链接,但在阅读之后,我没有得到任何新信息,他们只是说 kotlin 没有检查异常,因为“那不好”。毕竟我不知道我必须用try catch检查哪一段代码,我必须深入每个类和方法,看看代码是否只是“抛出”异常?我不觉得这很容易......任何帮助将不胜感激
标签: java android kotlin exception