Android开发中如何知晓Kotlin方法可能抛出的异常类型
在Java中,我们很容易判断何时需要对代码段进行try-catch捕获:编译器会强制要求处理异常,且方法声明会通过throws关键字标注将抛出的Exceptions类型。
示例如下:
void testMethod() throws Exception { throw new Exception("test"); }
但同样的逻辑在Kotlin中写法如下:
fun testMethod() { throw Exception("test") }
那么在Kotlin中,如何判断某个类提供的代码段需要处理特定的Exception?
不少开发者都遇到过无法确定是否需要处理异常,也不知道是否可以细化捕获IOException这类特定异常的困惑。
2021年9月16日更新
经过更多调研发现,该问题没有完美的通用解决方案。
2016年就有开发者提出了相同的相关问题,以下是整理后的可采取的方案:
- 如果你在IntelliJ中用Kotlin调用Java方法,想要查询该方法抛出的异常,可以按快捷键F1唤起javadoc弹窗,查看其中的throws声明。
- Kotlin函数可以通过@Throws注解声明抛出的异常,但该注解是可选的,无法保证所有方法都会添加。遗憾的是,对添加了@Throws注解的Kotlin方法按F1快捷键,不会展示其声明的抛出异常类型。Java调用这类Kotlin方法时,编译器会要求捕获注解中声明的异常。
- Kotlin的javadoc(KDoc)可以通过@throws文档注解标注函数可能抛出的异常,这类标注会展示在javadoc和F1帮助弹窗中,当然该注解同样是可选的。
内容的提问来源于stack exchange,提问作者Bogdan Android
相关产品推荐
相关产品推荐

