Kotlin:
Feilhåndtering

Hvordan:

Kotlin tilbyr try, catch, finally, og throw for å håndtere feil. Slik bruker du dem:

fun main() {
    val teller = 10
    val nevner = 0

    try {
        val resultat = teller / nevner
        println("Resultat: $resultat")
    } catch (e: ArithmeticException) {
        println("Kan ikke dele på null, kompis.")
    } finally {
        println("Dette skjer uansett hva.")
    }
}

Output:

Kan ikke dele på null, kompis.
Dette skjer uansett hva.

Hvis noe går galt i try-blokken, går utførelsen straks til catch. Den fanger den spesifikke feilen som er kastet (ArithmeticException i dette tilfellet). finally-blokken kjøres etterpå—uavhengig av utfallet.

Dypdykk

try-catch-blokken har vært en ting siden de tidlige programmeringsdagene—det er som et sikkerhetsnett. Kotlin tilbyr også throw for manuelt å kaste et unntak inn i ringen, og det er finally for kode som må kjøre—ofte oppryddingsarbeid.

Alternativer inkluderer Result-typen og Kotlins try som et uttrykk.

val resultat: Result<Int> = try {
    Result.success(teller / nevner)
} catch (e: ArithmeticException) {
    Result.failure(e)
}

Denne tilnærmingen returnerer et Result-objekt—du får enten en suksess eller et feilslag uten dramaet med et ubehandlet unntak.

Implementering i Kotlin er ryddig fordi du kan bruke try som et uttrykk, noe som betyr at det returnerer en verdi. Valg som disse gjør feilhåndtering i Kotlin ganske allsidig. Det handler om å velge det riktige verktøyet for jobben, akkurat som du ville gjort i et verksted.

Se også

  • Kotlin-dokumentasjon om Unntak: Kotlin Exception Handling
  • Kotlin Result-type dokumentasjon: Kotlin Result
  • Effective Java, 3. utgave, av Joshua Bloch—gode innsikter om unntak, selv om det er spesifikt for Java.