Kotlin:
Fouten afhandelen

Hoe:

Kotlin biedt try, catch, finally, en throw om fouten te beheren. Hier is hoe je ze gebruikt:

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

    try {
        val resultaat = teller / noemer
        println("Resultaat: $resultaat")
    } catch (e: ArithmeticException) {
        println("Je kunt niet delen door nul, maat.")
    } finally {
        println("Dit gebeurt hoe dan ook.")
    }
}

Output:

Je kunt niet delen door nul, maat.
Dit gebeurt hoe dan ook.

Als er iets fout gaat in het try blok, springt de uitvoering naar catch. Het vangt de specifieke fout op die gegooid wordt (ArithmeticException in dit geval). Het finally blok voert daarna uit—ongeacht de uitkomst.

Diepgaand

Het try-catch blok bestaat al sinds de vroege programmeerdagen—het is als een veiligheidsnet. Kotlin biedt ook throw aan om handmatig een uitzondering in de ring te gooien, en er is finally voor code die moet draaien—vaak opruimwerk.

Alternatieven zijn het Result type en Kotlin’s try als een expressie.

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

Deze aanpak retourneert een Result object—je krijgt ofwel een succes of een mislukking zonder het drama van een onbehandelde uitzondering.

Implementatie in Kotlin is netjes omdat je try kunt gebruiken als een expressie, wat betekent dat het een waarde retourneert. Keuzes zoals deze maken de foutafhandeling in Kotlin vrij veelzijdig. Het gaat erom het juiste gereedschap voor de klus te kiezen, net zoals je dat in een werkplaats zou doen.

Zie Ook

  • Kotlin documentatie over Uitzonderingen: Kotlin Exception Handling
  • Kotlin Result type documentatie: Kotlin Result
  • Effective Java, 3e Editie, door Joshua Bloch—geweldige inzichten over uitzonderingen, hoewel het specifiek over Java gaat.