From 15246bdeb5c5c9d0411aae5bc05685ec4a30a075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=9C=A4=EC=A0=95?= Date: Thu, 20 Mar 2025 19:55:15 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EC=88=98=EC=97=85=20=EB=82=B4=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 ++-- src/main/java/com/example/week2/builder/App1.java | 10 ++++++++-- .../com/example/week2/exception/CustomException.java | 2 +- .../java/com/example/week2/exception/ErrorCode.java | 3 ++- .../example/week2/exception/ExceptionController.java | 2 ++ .../week2/exception/GlobalExceptionHandler.java | 1 + .../week2/exception/GlobalExceptionHandler2.java | 4 ++-- 7 files changed, 18 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index d89f850..20f0d52 100644 --- a/build.gradle +++ b/build.gradle @@ -24,10 +24,10 @@ repositories { } dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + //implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' - runtimeOnly 'com.mysql:mysql-connector-j' + //runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' diff --git a/src/main/java/com/example/week2/builder/App1.java b/src/main/java/com/example/week2/builder/App1.java index b5f9553..168dde0 100644 --- a/src/main/java/com/example/week2/builder/App1.java +++ b/src/main/java/com/example/week2/builder/App1.java @@ -1,8 +1,14 @@ package com.example.week2.builder; -public class App1 { +import com.example.week2.exception.CustomException; +import com.example.week2.exception.ErrorCode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +public class App1 { + private static final Logger log = LoggerFactory.getLogger(App1.class); public static void main(String[] args) { - + log.error("에러입니다."); + throw new CustomException(ErrorCode.INVALID_REQUEST); } } diff --git a/src/main/java/com/example/week2/exception/CustomException.java b/src/main/java/com/example/week2/exception/CustomException.java index 49fb605..f3b5b9c 100644 --- a/src/main/java/com/example/week2/exception/CustomException.java +++ b/src/main/java/com/example/week2/exception/CustomException.java @@ -8,7 +8,7 @@ public class CustomException extends RuntimeException{ private final ErrorCode errorCode; public CustomException(ErrorCode errorCode) { - super(errorCode.getMessage()); + super(errorCode.getMessage()); // RuntimeException은 string을 받아 단순 출력 -> 커스텀 errorCode를 전달 this.errorCode = errorCode; } } diff --git a/src/main/java/com/example/week2/exception/ErrorCode.java b/src/main/java/com/example/week2/exception/ErrorCode.java index 4d28422..ce38a3e 100644 --- a/src/main/java/com/example/week2/exception/ErrorCode.java +++ b/src/main/java/com/example/week2/exception/ErrorCode.java @@ -8,7 +8,8 @@ @AllArgsConstructor public enum ErrorCode { - INVALID_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청이 들어왔습니다"),; + INVALID_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청이 들어왔습니다"), + SEJONG_UNIV(HttpStatus.BAD_GATEWAY, "출력하고 싶은 메시지"); private final HttpStatus status; diff --git a/src/main/java/com/example/week2/exception/ExceptionController.java b/src/main/java/com/example/week2/exception/ExceptionController.java index 859ce8e..4125cc9 100644 --- a/src/main/java/com/example/week2/exception/ExceptionController.java +++ b/src/main/java/com/example/week2/exception/ExceptionController.java @@ -21,4 +21,6 @@ public void throwIllegalArgumentException() { throw new IllegalArgumentException(); } + @GetMapping("/custom") + public void throwCustomException() {throw new CustomException(ErrorCode.INVALID_REQUEST);} } diff --git a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java index 91a694e..4205503 100644 --- a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java @@ -1,6 +1,7 @@ package com.example.week2.exception; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; diff --git a/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java b/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java index 3173af8..715ab7d 100644 --- a/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java +++ b/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java @@ -4,11 +4,11 @@ import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; -@ControllerAdvice +@ControllerAdvice //-> 에러를 잡아서 View를 반환 @Slf4j public class GlobalExceptionHandler2 { - @ExceptionHandler(IllegalArgumentException.class) + @ExceptionHandler(IllegalArgumentException.class) // -> IllegalArgumentException이 발생하면 얘가 잡아서 처리 public String handleIllegalArgumentException() { log.error("IllegalArgumentException 발생"); return "error"; From 978323bde1028f3e35550d7cdd8a6e86442e9467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=9C=A4=EC=A0=95?= Date: Fri, 21 Mar 2025 14:49:52 +0900 Subject: [PATCH 2/2] Update GlobalExceptionHandler.java --- .../week2/exception/GlobalExceptionHandler.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java index 4205503..fccd681 100644 --- a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java @@ -20,4 +20,17 @@ public String handleInternalError() { log.error("InternalError 처리 시작"); return "InternalError 핸들링"; } + + @ExceptionHandler(CustomException.class) + public ResponseEntity handleCustomException(CustomException e) { + log.error("CustomException 발생: {}", e.getMessage(), e); + + ErrorCode errorCode = e.getErrorCode(); + + ErrorResponse response = ErrorResponse.builder() + .errorCode(errorCode) + .errorMessage(errorCode.getMessage()) + .build(); + return ResponseEntity.status(errorCode.getStatus()).body(response); + } }