From 461c7adf1e344106a4d3ee24e3387e9bb01d80b4 Mon Sep 17 00:00:00 2001 From: heeun98 <132757475+heeun98@users.noreply.github.com> Date: Thu, 20 Mar 2025 20:54:02 +0900 Subject: [PATCH 1/3] =?UTF-8?q?custom=EC=98=88=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 6 +++--- src/main/java/com/example/week2/builder/App1.java | 10 ++++++++++ src/main/java/com/example/week2/builder/Student.java | 2 ++ .../com/example/week2/exception/CustomException.java | 2 +- .../java/com/example/week2/exception/ErrorCode.java | 3 ++- .../example/week2/exception/ExceptionController.java | 7 +++++++ .../week2/exception/GlobalExceptionHandler.java | 12 ++++++++++++ .../week2/exception/GlobalExceptionHandler2.java | 3 ++- .../com/example/week2/logger/LoggerExample3.java | 1 + 9 files changed, 40 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index d89f850..b2622ca 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ version = '0.0.1-SNAPSHOT' java { toolchain { - languageVersion = JavaLanguageVersion.of(17) + languageVersion = JavaLanguageVersion.of(23) } } @@ -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..3f85f05 100644 --- a/src/main/java/com/example/week2/builder/App1.java +++ b/src/main/java/com/example/week2/builder/App1.java @@ -1,8 +1,18 @@ package com.example.week2.builder; +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/builder/Student.java b/src/main/java/com/example/week2/builder/Student.java index dabec74..dc92f58 100644 --- a/src/main/java/com/example/week2/builder/Student.java +++ b/src/main/java/com/example/week2/builder/Student.java @@ -6,7 +6,9 @@ import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; +import lombok.extern.slf4j.Slf4j; +@Slf4j @Getter @Setter @AllArgsConstructor diff --git a/src/main/java/com/example/week2/exception/CustomException.java b/src/main/java/com/example/week2/exception/CustomException.java index 49fb605..6e27238 100644 --- a/src/main/java/com/example/week2/exception/CustomException.java +++ b/src/main/java/com/example/week2/exception/CustomException.java @@ -3,7 +3,7 @@ import lombok.Getter; @Getter -public class CustomException extends RuntimeException{ +public class CustomException extends RuntimeException{ // 런타임 상속 private final 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..5b3436a 100644 --- a/src/main/java/com/example/week2/exception/ErrorCode.java +++ b/src/main/java/com/example/week2/exception/ErrorCode.java @@ -6,9 +6,10 @@ @Getter @AllArgsConstructor -public enum ErrorCode { +public enum ErrorCode { // 직접 커스텀 INVALID_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청이 들어왔습니다"),; + //SEJONG_UNI(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..65c025d 100644 --- a/src/main/java/com/example/week2/exception/ExceptionController.java +++ b/src/main/java/com/example/week2/exception/ExceptionController.java @@ -21,4 +21,11 @@ public void throwIllegalArgumentException() { throw new IllegalArgumentException(); } + @GetMapping("/custom") + public void customeException() { + 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..fbee30c 100644 --- a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java @@ -4,6 +4,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +//컨트롤러를 보고있는 상태유지? @RestControllerAdvice @Slf4j public class GlobalExceptionHandler { @@ -19,4 +20,15 @@ public String handleInternalError() { log.error("InternalError 처리 시작"); return "InternalError 핸들링"; } + + @ExceptionHandler(CustomException.class) + public String handleCustomException() { + log.error("CustomeError 처리가 시작"); + return "custom 에러처리 성공 !!"; + } + + + + + } diff --git a/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java b/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java index 3173af8..9680378 100644 --- a/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java +++ b/src/main/java/com/example/week2/exception/GlobalExceptionHandler2.java @@ -4,6 +4,7 @@ import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; +// @ControllerAdvice @Slf4j public class GlobalExceptionHandler2 { @@ -11,7 +12,7 @@ public class GlobalExceptionHandler2 { @ExceptionHandler(IllegalArgumentException.class) public String handleIllegalArgumentException() { log.error("IllegalArgumentException 발생"); - return "error"; + return "error";//error 라는 뷰를 찾는다. @ControllerAdvice 이기대문에 } } diff --git a/src/main/java/com/example/week2/logger/LoggerExample3.java b/src/main/java/com/example/week2/logger/LoggerExample3.java index 0a8cfce..47db2df 100644 --- a/src/main/java/com/example/week2/logger/LoggerExample3.java +++ b/src/main/java/com/example/week2/logger/LoggerExample3.java @@ -14,6 +14,7 @@ public static void main(String[] args) { .build(); log.info("학생 이름은" + student.getName() + "입니다"); + // logging level 을 error 을 해도 계산을 진행한다. log.info("학생 이름은 {} 입니다.", student.getName()); } From d072b05cd9be7c5ae1d6d23434b9f77424038e1d Mon Sep 17 00:00:00 2001 From: heeun98 <132757475+heeun98@users.noreply.github.com> Date: Thu, 20 Mar 2025 20:56:17 +0900 Subject: [PATCH 2/3] salkdjfd --- .../com/example/week2/exception/GlobalExceptionHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java index fbee30c..3daa281 100644 --- a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java @@ -28,6 +28,10 @@ public String handleCustomException() { } + public String sakjdflasj() { + System.out.println("dskljaf"); + return " dsaklfjd"; + } From 7e41c63f77528c10f5676f5c5703983dfb10e757 Mon Sep 17 00:00:00 2001 From: heeun98 <132757475+heeun98@users.noreply.github.com> Date: Fri, 21 Mar 2025 15:38:12 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=A0=84=EC=97=AD=EC=98=88=EC=99=B8?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/week2/builder/App1.java | 9 +++++++-- .../com/example/week2/builder/Student.java | 10 +++++++++- .../example/week2/exception/ErrorCode.java | 2 +- .../exception/GlobalExceptionHandler.java | 19 ++++++++++++------- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/example/week2/builder/App1.java b/src/main/java/com/example/week2/builder/App1.java index 3f85f05..a2d7b5a 100644 --- a/src/main/java/com/example/week2/builder/App1.java +++ b/src/main/java/com/example/week2/builder/App1.java @@ -11,8 +11,13 @@ public class App1 { public static void main(String[] args) { - log.error("에러입니다."); + Student.StudentBuilder school = Student.builder() + .name("heeun") + .age(28) + .school("sejong"); + + Student st = school.build(); + - throw new CustomException(ErrorCode.INVALID_REQUEST); } } diff --git a/src/main/java/com/example/week2/builder/Student.java b/src/main/java/com/example/week2/builder/Student.java index dc92f58..3a4608b 100644 --- a/src/main/java/com/example/week2/builder/Student.java +++ b/src/main/java/com/example/week2/builder/Student.java @@ -13,10 +13,18 @@ @Setter @AllArgsConstructor @NoArgsConstructor -@Builder @ToString public class Student { + + private Long id; private String name; private int age; private String school; + + @Builder + public Student(String name, int age, String school) { + this.name = name; + this.age = age; + this.school = school; + } } diff --git a/src/main/java/com/example/week2/exception/ErrorCode.java b/src/main/java/com/example/week2/exception/ErrorCode.java index 5b3436a..df7faef 100644 --- a/src/main/java/com/example/week2/exception/ErrorCode.java +++ b/src/main/java/com/example/week2/exception/ErrorCode.java @@ -9,7 +9,7 @@ public enum ErrorCode { // 직접 커스텀 INVALID_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청이 들어왔습니다"),; - //SEJONG_UNI(HttpStatus.BAD_GATEWAY, "출력하고싶은 메시지"); + private final HttpStatus status; diff --git a/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java b/src/main/java/com/example/week2/exception/GlobalExceptionHandler.java index 3daa281..f56f610 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; @@ -21,17 +22,21 @@ public String handleInternalError() { return "InternalError 핸들링"; } + @ExceptionHandler(CustomException.class) - public String handleCustomException() { - log.error("CustomeError 처리가 시작"); - return "custom 에러처리 성공 !!"; + public ResponseEntity handleCustomeException(CustomException e) { + log.info("customError 처리 시작 {}", e.getMessage(), e); + + ErrorCode errorCode = e.getErrorCode(); + ErrorResponse response = ErrorResponse.builder() + .errorCode(errorCode) + .errorMessage(errorCode.getMessage()) + .build(); + return ResponseEntity.status(errorCode.getStatus()).body(response); } - public String sakjdflasj() { - System.out.println("dskljaf"); - return " dsaklfjd"; - } +