Kotlin:
Virheiden käsittely
Kuinka:
Kotlin tarjoaa try
, catch
, finally
ja throw
virheiden hallintaan. Tässä on kuinka käytät niitä:
fun main() {
val osoittaja = 10
val nimittäjä = 0
try {
val tulos = osoittaja / nimittäjä
println("Tulos: $tulos")
} catch (e: ArithmeticException) {
println("Nollalla ei voi jakaa, kaveri.")
} finally {
println("Tämä tapahtuu joka tapauksessa.")
}
}
Tuloste:
Nollalla ei voi jakaa, kaveri.
Tämä tapahtuu joka tapauksessa.
Jos try
-lohkossa tapahtuu virhe, suoritus siirtyy catch
-lohkoon. Se ottaa kiinni tietyn heitotun virheen (tässä tapauksessa ArithmeticException
). Finally
-lohko suoritetaan sen jälkeen - riippumatta lopputuloksesta.
Syväsukellus
Try-catch
-lohko on ollut olemassa jo varhaisista ohjelmointipäivistä lähtien – se on kuin turvaverkko. Kotlin tarjoaa myös throw
heittämään poikkeuksen kehiin manuaalisesti, ja finally
löytyy koodille, joka on pakko suorittaa - usein siivoustyötä.
Vaihtoehtoina ovat Result
-tyyppi ja Kotlinin try
lausekkeena.
val tulos: Result<Int> = try {
Result.success(osoittaja / nimittäjä)
} catch (e: ArithmeticException) {
Result.failure(e)
}
Tämä lähestymistapa palauttaa Result
-olion - saat joko onnistumisen tai epäonnistumisen ilman käsittelemättömän poikkeuksen draamaa.
Totetutus Kotlinissa on siistiä, koska voit käyttää try
lausekkeena, mikä tarkoittaa, että se palauttaa arvon. Tällaiset valinnat tekevät virheiden käsittelystä Kotlinissa melko monipuolista. Kyse on oikean työkalun valinnasta tehtävään, aivan kuten työpajassa.
Katso Myös
- Kotlinin dokumentaatio poikkeuksista: Kotlin Exception Handling
- Kotlinin
Result
-tyyppi dokumentaatio: Kotlin Result - Effective Java, 3. painos, kirjoittanut Joshua Bloch - loistavia oivalluksia poikkeuksista, vaikkakin se on Java-spesifi.