반응형

예외처리 5

API 예외 처리

API 예외 처리를 어떻게 해야할까?HTML 페이지의 경우 지금까지 설명했던 것처럼, 4xx, 5xx와 같은 오류 페이지만 있으면 대부분의 문제를 해결할 수 있었다.그런데 API의 경우에는 생각할 내용이 더 많다. 오류 페이지는 단순히 고객에게 오류 화면을 보여주고 끝이지만, API는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 한다. API의 경우 어떻게 예외처리를 하면 좋은지 알아보자.우선 처음으로 돌아가서 서블릿 오류 페이지 방식을 사용해보자.@Componentpublic class WebServerCustomizer implements WebServerFactoryCustomizer { @Override public void customize(Conf..

공부/Spring 2025.04.14

예외 처리와 오류 페이지

예외 처리와 오류 페이지를 알아보기 위해 패키지를 만들도록 하자.https://start.spring.io/   서블릿 예외 처리 - 시작스프링이 아닌 순수 서블릿 컨테이너는 예외를 어떻게 처리하는지 알아보자. 서블릿은 다음 2가지 방식으롷 예외 처리를 지원한다.- 'Exception' 예외- 'response.sendError(HTTP 상태 코드, 오류 메시지)'  Exception(예외)자바 직접 실행 - 자바의 메인 메서드를 직접 실행하는 경우 main이라는 이름의 쓰레드가 실행된다. 실행 도중에 예외를 잡지 못하고 처음 실행한 main()메서드를 넘어서 예외가 던져지면, 예외 정보를 남기고 해당 쓰레드는 종료된다. 웹 애플리케이션 - 웹 애플리케이션은 사용자 요청별로 별도의 쓰레드가 할당되고, 서..

공부/Spring 2025.04.10

자바 예외처리 복습하기

예외처리가 필요한 이유를 알아보기 위해 다음과 같은 간단한 예제 프로그램을 만들었다. 이 코드는 사용자의 입력을 받고, 입력 받은 문자를 외부 서버에 전송하는 프로그램이다.(실제 통신을 하고있다고 가정한다) NetworkClient : 외부 서버와 연결하고, 데이터를 전송하고, 연결을 종료하는 기능을 제공한다.NetworkService : NetworkClient를 사용해서 데이터를 전송한다. NetworkClient를 사용하려면, 연결, 전송, 연결 종료와 같은 복잡한 흐름을 제어해야 하는데, 이런 부분을 NetworkService가 담당한다.Main : 사용자의 입력을 받는다. --> 전체 흐름 : Main을 통해 사용자의 입력을 받으면, 사용자의 입력을 NetworkService에 전달한다. Net..

공부/Java 2024.09.22

자바 예외처리 2

https://surrealcode.tistory.com/65 자바 예외처리 1예외처리는 정상 흐름과 예외 흐름을 명확하게 분리하여 가독성을 높이는 데 있다.  우선 다음의 예제를 살펴보자. 이 예제는 서버와 통신(을 한다고 가정한다)하여 메세지를 보내는 예제이다.surrealcode.tistory.com예외처리에 관한 1편은 이전 내용을 참고하는 것이 좋다.이전에 사용했던 소스 코드를 여기서 재사용할 예정이다.  앞서 만든 통신 프로그램은 반환값을 사용하여 예외를 처리했었다. 이런 경우 다음과 같은 문제가 있다1. 정상 흐름과 예외흐름이 섞여있어 코드를 이해하기가 어렵다.2. 예외 흐름이 더 많은 코드 분량을 차지한다. 여기에 예외처리를 도입해서 처리해보자.public class NetworkClien..

공부/Java 2024.09.16

자바 예외처리 1

예외처리는 정상 흐름과 예외 흐름을 명확하게 분리하여 가독성을 높이는 데 있다.  우선 다음의 예제를 살펴보자. 이 예제는 서버와 통신(을 한다고 가정한다)하여 메세지를 보내는 예제이다.public class NetworkClientV0 { private final String address; public NetworkClientV0(String address) { this.address = address; } public String connect(){ System.out.println(address + " 서버 연결 성공"); return "success"; } public String send(String data){ ..

공부/Java 2024.09.15
반응형