1. ホーム
  2. java

[解決済み] はKotlinのメソッドでExceptionをスローします。

2022-02-04 20:22:37

質問

この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 のクラスから派生した場合でも、例外を宣言する必要はなく、メソッド throws .

@Throws(SomeException::class) はあくまでJavaの相互運用性を目的としたもので、関数を書く際に throws をJavaのシグネチャにすることで、Javaで例外を処理することが可能になる(必要がある)。

その代わり、パブリック API の例外は、ドキュメントを KDocに @throws タグ .