본문 바로가기

예외처리3

API 사용성 개선: 사용자 정의 예외를 이용한 API 응답 세분화 및 상세화 사용자 정의 예외를 통해 API 응답 세분화를 적용한 이유 API 원작자 없이도 프론트엔드 같은 API 이용자가 API를 쉽고 정확하게 사용하도록 하기 위해선, API 명세서 뿐만 아니라 상태코드와 메세지를 통한 상세하고 정교한 응답이 필수적이라고 생각합니다. 이 과정에서, 특정 요청을 처리함에 있어 잘못 되었다면 어떻게 잘못 되었는지 어떤 처리를 해줘야 하는지 알려줘야 합니다. 또한, 정교한 예외 처리로 서버의 리소스가 훼손되는 문제도 방지해야 합니다. 이를 위해, 발생할 수 있는 예외별로 사용자 정의 예외를 생성하고 상태코드와 에러메세지를 통해 상세한 예외 상황을 응답할 수 있도록 할 것입니다. 이 과정에서, Spring ExceptionResolver를 이용하여 예외 관리가 편리하게 코드를 개선한 .. 2022. 12. 2.
예외처리의 기본 예외처리 시리즈를 다루다가 좀 더 본질적인 부분에 내가 무심했다는것을 깨달았다. 에러, 에러의 종류 ,계층 구조 등등 이번 포스트는 그 기본을 다시 공부한것을 정리해두고자 한다. 프로그램 오류란? 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상 종료되는 경우를 초래하는 원인을 프로그램 에러 또는 오류라고한다. 이 오류는 3가지 종류로 크게 구분할수있다. 컴파일 에러 - 컴파일 시점에 발생하는 에러 런타임 에러 - 실행 시에 발생하는 에러 논리적 에러 - 실행은 되지만 잘못 작성된 로직으로 인해 의도와 다르게 동작하는 것 예외란? 자바같은 컴파일 언어는 컴파일러가 컴퓨터가 알아들을수있도록 개발자 코드를 기계어로 번역하는데, 이때, 컴파일 에러는 컴파일시에 컴파일러가 소스코드(.java) 에 .. 2022. 1. 25.
ExceptionResolver를 이용한 스프링 부트 API 오류 처리 이전에 학습했던 스프링 제공 예외 페이지 컨트롤러 BasicErrorController에 들어가 보면 /error 동일한 경로를 처리하는 errorHtml() , error() 두 메서드를 확인할 수 있다. 내부 요청을 매핑하는 스프링 부트 기본 제공 컨트롤러 요청에 따라 하나는 html을 반환하고 하나는 json을 반환한다. 스프링 부트가 이미 JSON으로 데이터를 반환해야하는 경우도 구현해 놓은것이다. errorHtml() : 클라이언트 요청의 Accept 해더 값이 text/html 인 경우에는 errorHtml() 을 호출해서 view를 제공한다. error() : 그외 경우에 호출되고 ResponseEntity 로 HTTP Body에 JSON 데이터를 반환한다. 이때 아래와 같이 예외 관련 정보.. 2022. 1. 24.