web-dev-qa-db-fra.com

Kotlin a vérifié les exceptions, alternative

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?

12
Jocky Doe

É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 ).

4
GhostCat

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).

1
CodesInTheDark