본문 바로가기

개발/Java

[JAVA] Error Message 임의로 생성

반응형

기존의 사용하던 에러 생성 방식인 RuntimeException으로 할 경우 서버에 배포시 Error Message를 찾을 수 없는 이슈가 있었다. (원인 찾지 못함)

throw new RuntimeException( getRows + "입력 값이 잘못 되었습니다.");

500에러 리턴 결과

위 이미지와 같이 로컬 실행시 message를 return 받아서 사용자 화면에 뿌려줬었다.

프론트 결과

 

개발, 운영 서버에 반영시 위와 같이 결과가 나왔으면 좋겠다.

하지만 실패.

개발, 운영 리턴값

같은 로직을 사용하였지만 에러에 관하여 결과 값이 다르다..

서버 환경 문제일까?

원인은 파악하지 못했지만

아래와 같은 방법으로 방식을 수정하여 Error Message를 프론트에 return 시켜봤다.

@PostMapping("/uploadSubject")
public ResponseEntity<SubjectExcelUploadResponse> uploadSubject(
        @RequestParam("file") MultipartFile file,
        @RequestParam(name = "preview", defaultValue = "false") boolean isPreview,
        HttpServletResponse response
) {
    try (InputStream inputStream = file.getInputStream()) {
        SubjectExcelUploadRequest subjectExcelUploadRequest = SubjectExcelUploadRequest.builder()
                .inputStream(inputStream)
                .isPreview(isPreview)
                .build();

        SubjectExcelUploadResponse results = subjectExcelUploadService.upload(subjectExcelUploadRequest);

        return ResponseEntity.ok(results);
    } catch (Exception e) {
        SubjectExcelUploadResponse message = new SubjectExcelUploadResponse();
        message.setMessage(e.getMessage());
        return ResponseEntity.badRequest().body(message);
    }
}

e.getMessage();

위 메소드는

RuntimeException 에서 발생한 에러를 읽어오고 있다.

 

결과

위 코드 적용 후

ResponseEntity.badRequest().body(); 적용 이미지

 

위와 같이 에러 메시지를 개발자가 설정한 값으로 return 가능하다.

반응형