Comme Kotlin ne prend pas en charge les exceptions vérifiées, comment informer un programmeur qu'une méthode peut générer une exception
Exemple simple:
class Calculator (value: Int = 0) {
fun divide (dividend: BigDecimal, divider: BigDecimal) : BigDecimal {
return dividend / divider
}
}
De toute évidence, la méthode de division peut générer une exception Java.lang.ArithmeticException: Division by zero
et le créateur de la bibliothèque doit avertir l'utilisateur de la classe de placer l'invocation dans une clause try-catch
.
Quel est le mécanisme de cette prise de conscience à Kotlin?
Étant donné que le langage n'a pas de construction pour rendre cela explicite, il ne reste plus qu'implicitement.
Par exemple, en mettant javadoc qui indique clairement à l'utilisateur de la méthode quelles sont les raisons et les raisons pour lesquelles des exceptions pourraient être lancées. Ou vous utilisez l'annotation @Throws .
Peut-être que l’équipe de kotlin ajoutera avertissements du compilateur à un moment donné pour compenser cela (voir ici ).
Vous pouvez retourner Essayez afin que le client puisse appeler isSuccess ou isFailure http://www.Java-allandsundry.com/2017/12/kotlin-try-type-for-functional.html
Vous pouvez également renvoyer le type nullable BigDecimal? afin que le client sache que la valeur peut ne pas exister (une fois divisé par zéro, vous pouvez renvoyer null).