From 2a78c6c5117bc4220928743bc887b19abb7f7cc2 Mon Sep 17 00:00:00 2001 From: Subin Choi <125132754+subi930@users.noreply.github.com> Date: Mon, 24 Mar 2025 13:55:13 +0900 Subject: [PATCH] =?UTF-8?q?update=20:=202=EC=A3=BC=EC=B0=A8=20=EA=B3=BC?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 ++-- .../java/com/example/week2/builder/App1.java | 14 ++++++++++++++ .../com/example/week2/builder/Student.java | 2 ++ .../com/example/week2/exception/ErrorCode.java | 5 +++-- .../week2/exception/ExceptionController.java | 5 +++++ .../exception/GlobalExceptionHandler.java | 18 +++++++++++++++++- .../week2/swagger/config/SwaggerConfig.java | 2 +- 7 files changed, 44 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index d89f850..93969da 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..65233ce 100644 --- a/src/main/java/com/example/week2/builder/App1.java +++ b/src/main/java/com/example/week2/builder/App1.java @@ -1,8 +1,22 @@ package com.example.week2.builder; +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("에러입니다."); + Student student = Student.builder() + .name("최수빈") + .age(25) + .school("세종대학교") + .build(); + + System.out.println(student); + } } diff --git a/src/main/java/com/example/week2/builder/Student.java b/src/main/java/com/example/week2/builder/Student.java index dabec74..e4ada12 100644 --- a/src/main/java/com/example/week2/builder/Student.java +++ b/src/main/java/com/example/week2/builder/Student.java @@ -6,6 +6,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; +import lombok.extern.slf4j.Slf4j; @Getter @Setter @@ -13,6 +14,7 @@ @NoArgsConstructor @Builder @ToString +@Slf4j public class Student { private String name; private int age; diff --git a/src/main/java/com/example/week2/exception/ErrorCode.java b/src/main/java/com/example/week2/exception/ErrorCode.java index 4d28422..538b60a 100644 --- a/src/main/java/com/example/week2/exception/ErrorCode.java +++ b/src/main/java/com/example/week2/exception/ErrorCode.java @@ -8,8 +8,9 @@ @AllArgsConstructor public enum ErrorCode { - INVALID_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청이 들어왔습니다"),; - + INVALID_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청이 들어왔습니다"), + SEJONG_UNIT(HttpStatus.OK,"세종대 학생 등록이 되었습니다"), + CUSTOM_ERROR(HttpStatus.BAD_REQUEST, "커스텀 에러가 발생했습니다."); private final HttpStatus status; private final String message; diff --git a/src/main/java/com/example/week2/exception/ExceptionController.java b/src/main/java/com/example/week2/exception/ExceptionController.java index 859ce8e..ff73e45 100644 --- a/src/main/java/com/example/week2/exception/ExceptionController.java +++ b/src/main/java/com/example/week2/exception/ExceptionController.java @@ -21,4 +21,9 @@ public void throwIllegalArgumentException() { throw new IllegalArgumentException(); } + @GetMapping("/custom") + public void method1(){ + throw new CustomException(ErrorCode.CUSTOM_ERROR); + } + } diff --git a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java index 91a694e..1f84ea7 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; @@ -8,8 +9,9 @@ @Slf4j public class GlobalExceptionHandler { - @ExceptionHandler(NullPointerException.class) + @ExceptionHandler(NullPointerException.class) // null포인터익셉션을 잡아냄 public String handleNullPointerException() { + // 잡아낸 후 다음 코드 실행 log.error("NullPointer Exception 처리 시작"); return "NullPointer Exception 핸들링"; } @@ -19,4 +21,18 @@ 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); + } } diff --git a/src/main/java/com/example/week2/swagger/config/SwaggerConfig.java b/src/main/java/com/example/week2/swagger/config/SwaggerConfig.java index 845209d..309d4a7 100644 --- a/src/main/java/com/example/week2/swagger/config/SwaggerConfig.java +++ b/src/main/java/com/example/week2/swagger/config/SwaggerConfig.java @@ -5,7 +5,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -@Configuration +@Configuration // 환경설정 public class SwaggerConfig { @Bean