Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
kiteB committed Oct 4, 2021
1 parent e717394 commit 753ebbd
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
@@ -0,0 +1,60 @@
package hello.exception.api;

import hello.exception.UserException;
import hello.exception.exhandler.ErrorResult;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@Slf4j
@RestController
public class ApiExceptionV2Controller {

@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(IllegalArgumentException.class)
public ErrorResult illegalExHandle(IllegalArgumentException e) {
log.error("[exceptionHandle] ex", e);
return new ErrorResult("BAD", e.getMessage());
}

@ExceptionHandler
public ResponseEntity<ErrorResult> userExHandle(UserException e) {
log.error("[exceptionHandle] ex", e);
ErrorResult errorResult = new ErrorResult("USER-EX", e.getMessage());
return new ResponseEntity<>(errorResult, HttpStatus.BAD_REQUEST);
}

@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler
public ErrorResult exHandle(Exception e) {
log.error("[exceptionHandle] ex", e);
return new ErrorResult("EX", "내부 오류");
}

@GetMapping("/api2/members/{id}")
public MemberDto getMember(@PathVariable("id") String id) {
if (id.equals("ex")) {
throw new RuntimeException("잘못된 사용자");
}

if (id.equals("bad")) {
throw new IllegalArgumentException("잘못된 입력 값");
}

if (id.equals("user-ex")) {
throw new UserException("사용자 오류");
}

return new MemberDto(id, "hello " + id);
}

@Data
@AllArgsConstructor
static class MemberDto {
private String memberId;
private String name;
}
}
11 changes: 11 additions & 0 deletions exception/src/main/java/hello/exception/exhandler/ErrorResult.java
@@ -0,0 +1,11 @@
package hello.exception.exhandler;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class ErrorResult {
private String code;
private String message;
}

0 comments on commit 753ebbd

Please sign in to comment.