diff --git a/src/main/kotlin/com/example/Application.kt b/src/main/kotlin/com/example/Application.kt index 5b84164..f544811 100644 --- a/src/main/kotlin/com/example/Application.kt +++ b/src/main/kotlin/com/example/Application.kt @@ -2,6 +2,7 @@ package com.example import com.example.config.configureDatabase import com.example.config.configureDependencyInjection +import com.example.config.configureErrorHandling import com.example.config.configureHttp import com.example.config.configureLogging import com.example.config.configureRouting @@ -22,5 +23,6 @@ fun Application.module() { configureSecurity() configureSerialization() configureRouting() + configureErrorHandling() configureLogging() } diff --git a/src/main/kotlin/com/example/config/ErrorHandling.kt b/src/main/kotlin/com/example/config/ErrorHandling.kt new file mode 100644 index 0000000..ac6c1f7 --- /dev/null +++ b/src/main/kotlin/com/example/config/ErrorHandling.kt @@ -0,0 +1,22 @@ +package com.example.config + +import com.example.shared.CafeException +import io.ktor.http.* +import io.ktor.server.application.* +import io.ktor.server.plugins.statuspages.* +import io.ktor.server.response.* + + +fun Application.configureErrorHandling() { + install(StatusPages) { + exception { call, cause -> + call.respond(cause.errorCode.httpStatusCode, cause.message ?: "Bad Request") + } + exception { call, cause -> + call.respondText( + status = HttpStatusCode.InternalServerError, + text = "500: $cause" + ) + } + } +} \ No newline at end of file