用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异常。