throws Exception dans la méthode de Kotlin
Je suis en train de convertir ce code Java de Kotlin:
public class HeaderInterceptor implements Interceptor {
@Override public Response intercept(Chain chain) throws IOException {
return null;
}
}
Le problème c'est que quand j'mettre en œuvre les méthodes, j'obtiens quelque chose comme
class JsonHeadersInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain?): Response? {
throw UnsupportedOperationException()
}
}
La seule info que j'ai trouvé parle de lever des exceptions dans Kotlin est CETTE.
Une partie d'enlever le point d'interrogation, car il n'est pas nécessaire, pourquoi il ne gère pas le IOException
de la même façon? Quelle est la meilleure approche pour gérer cette situation?
Qu'entendez-vous par "gérer les IOException"? Toutes les exceptions sont des exceptions d'exécution dans Kotlin, et donc n'ont pas besoin d'être déclarées dans la clause throws. Et en fait, même le code Java n'a pas besoin de déclarer la IOException dans ses lancers clause, car il n'est jamais jette tout IOException.
OriginalL'auteur cesards | 2016-04-10
Vous devez vous connecter pour publier un commentaire.
Dans Kotlin, il n'y a pas vérifié les exceptions, sans exception, doivent être déclarés et vous n'êtes pas obligé de l'attraper, toute exception, même si, bien sûr, vous le pouvez. Même lors de la dérivation à partir d'une classe Java, vous n'avez pas à déclarer les exceptions qu'une méthode
throws
.@Throws(SomeException::class)
est juste un moyen de Java interopérabilité, il permet d'écrire une fonction avecthrows
en Java signature, de sorte qu'en Java, il sera possible (et nécessaire) pour gérer l'exception.Au lieu de cela, l'API publique les exceptions devraient être documentées dans KDoc avec
@throws
de la balise.OriginalL'auteur hotkey