我正在尝试将此Java代码转换为Kotlin:
public class HeaderInterceptor implements Interceptor {
@Override public Response intercept(Chain chain) throws IOException {
return null;
}
}
问题是,当我实现这些方法时,我得到类似
class JsonHeadersInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain?): Response? {
throw UnsupportedOperationException()
}
}
我发现有关在Kotlin中引发异常的唯一信息是THIS。
除了消除问号外,因为它不是必需的,为什么它也不能IOException
以同样的方式处理呢?处理这种情况的最佳方法是什么?
在Kotlin中,没有检查过的异常,也没有必须声明的异常,当然也可以不强制您捕获任何异常。即使从Java类派生,也不必声明method的异常throws
。
@Throws(SomeException::class)
只是Java互操作性的一种手段,它允许使用throws
Java签名编写具有Java签名的功能,因此在Java中将有可能(并且有必要)处理异常。
相反,公共API异常应在KDoc中使用@throws
标记进行记录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句