用Kotlin抛出异常

我试图将这个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中抛出异常的唯一信息就是这个 。

删除问号的一部分,因为没有必要,为什么不以同样的方式处理IOException呢? 处理这种情况的最佳方法是什么?

在Kotlin中, 没有检查异常 ,没有任何异常需要声明,并且你不被强迫捕获任何异常,当然,你也可以。 即使从Java类派生,您也不必声明方法throws

@Throws(SomeException::class)只是Java互操作性的一个平均值,它允许用Java签名throws函数来编写函数,这样在Java中就有可能(并且有必要)处理这个异常。

相反,应使用@throws标记在KDoc中记录公共API异常。