From 6087358f9d42d856c3427674e377aa65fe3e4fcd Mon Sep 17 00:00:00 2001 From: pricelees Date: Wed, 1 Oct 2025 10:27:47 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Tosspay=20=EC=A0=84=EC=9A=A9=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=EC=BD=94=EB=93=9C=20=EC=B6=94=EC=83=81?= =?UTF-8?q?=ED=99=94=20=EB=B0=8F=20=ED=99=95=EC=A0=95=20/=20=EC=B7=A8?= =?UTF-8?q?=EC=86=8C=EC=97=90=EC=84=9C=EC=9D=98=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/TosspayExceptionHandler.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/exception/TosspayExceptionHandler.kt diff --git a/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/exception/TosspayExceptionHandler.kt b/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/exception/TosspayExceptionHandler.kt new file mode 100644 index 00000000..44fdbb80 --- /dev/null +++ b/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/exception/TosspayExceptionHandler.kt @@ -0,0 +1,29 @@ +package com.sangdol.tosspaymock.exception + +import com.sangdol.common.types.web.CommonErrorResponse +import io.github.oshai.kotlinlogging.KLogger +import io.github.oshai.kotlinlogging.KotlinLogging +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.ExceptionHandler +import org.springframework.web.bind.annotation.RestControllerAdvice + +private val log: KLogger = KotlinLogging.logger {} + +@RestControllerAdvice +class TosspayExceptionHandler { + + @ExceptionHandler(value = [TosspayException::class]) + fun handleTosspayException( + e: TosspayException + ): ResponseEntity { + val code = e.errorCode + val name = (code as Enum<*>).name + val message = e.message + + log.warn { "[TosspayExceptionHandler] 결제 처리 과정 중 오류 발생: error=${name}, message=$message" } + + return ResponseEntity + .status(code.httpStatus.value()) + .body(CommonErrorResponse(name, message)) + } +}