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