Study
Ktor

StatusPages: Error Handling

Penjelasan

StatusPages adalah plugin Ktor untuk menangani exception dan status code TERTENTU secara terpusat — install(StatusPages) { exception<TipeException> { call, cause -> ... } } dipanggil OTOMATIS setiap kali exception tipe itu dilempar dari handler mana pun, tidak perlu try/catch berulang.

Contoh Konsep

import io.ktor.server.plugins.statuspages.*

fun Application.module() {
    install(StatusPages) {
        exception<IllegalArgumentException> { call, cause ->
            call.respond(HttpStatusCode.BadRequest, mapOf("error" to cause.message))
        }
        status(HttpStatusCode.NotFound) { call, status ->
            call.respond(status, mapOf("error" to "Halaman tidak ditemukan"))
        }
    }
}

Praktikum

Tulis install(StatusPages) dengan handler exception<NoSuchElementException> yang merespons HttpStatusCode.NotFound berisi map {"error": cause.message}.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

exception<T> { } menangkap EXCEPTION yang dilempar dari handler (mis. throw IllegalArgumentException(...)), sedangkan status(HttpStatusCode) { } menangkap RESPONSE dengan status code TERTENTU yang sudah dikirim (mis. 404 dari route yang tidak ditemukan) — dua mekanisme berbeda untuk dua skenario error yang berbeda.