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..95a4035 100644 --- a/src/main/java/com/example/week2/builder/App1.java +++ b/src/main/java/com/example/week2/builder/App1.java @@ -1,8 +1,16 @@ package com.example.week2.builder; -public class App1 { - public static void main(String[] args) { +import org.slf4j.LoggerFactory; + +import java.util.logging.Logger; +public class App1 { + public static void main(String[] args) { + Student student = Student.builder() + .name("김세희") + .age(23) + .school("세종대학교") + .build(); } } diff --git a/src/main/java/com/example/week2/exception/ErrorCode.java b/src/main/java/com/example/week2/exception/ErrorCode.java index 4d28422..ab5cc0a 100644 --- a/src/main/java/com/example/week2/exception/ErrorCode.java +++ b/src/main/java/com/example/week2/exception/ErrorCode.java @@ -10,7 +10,6 @@ public enum ErrorCode { INVALID_REQUEST(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..ec5fbbd 100644 --- a/src/main/java/com/example/week2/exception/ExceptionController.java +++ b/src/main/java/com/example/week2/exception/ExceptionController.java @@ -21,4 +21,8 @@ public void throwIllegalArgumentException() { throw new IllegalArgumentException(); } + @GetMapping("/custom") + public void thrownewCustomException(){ + 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..da48acb 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; @@ -19,4 +20,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); + } }