예외(3)
-
[DB 접근 기술] 자바 예외 이해
스프링이 제공하는 예외 추상화를 알아보기 전에 자바의 기본 예외에 대해 간단히 설명한다. 예외 중 RuntimeException과 그 자손들을 언체크 예외(런타임 예외), 나머지 Exception의 자손들을 체크 예외라고 한다. 체크 예외는 컴파일러가 체크하는 예외이며, 언체크 예외는 컴파일러가 체크하지 않는 예외이다. 예외에 대해서는 2가지 기본 규칙이 존재한다. 1. 예외는 잡아서 처리하거나 던져야 한다. 2. 예외를 잡거나 던질때 지정한 예외뿐만 아니라 그 예외의 자손들도 함께 처리된다. - 예를 들어 Exception을 catch로 잡으면 그 하위 예외들도 모두 잡을 수 있다. 예외를 처리하지 못하고 계속 던지면, 자바의 main() 쓰레드는 예외 로그를 출력하면서 시스템이 종료된다. WAS는 해..
2022.05.29 -
API 예외 처리 (1) - MediaType, ExceptionResolver
HTML을 응답으로 보내주는 경우에는 예외처리를 4xx, 5xx 등의 오류 페이지만 있다면 대부분의 문제를 해결 가능했다. 이에 대한 포스팅은 https://mr-popo.tistory.com/53?category=1004552 스프링 예외 처리와 오류 페이지 서블릿은 크게 두가지 방식으로 예외 처리를 지원한다. Exception (예외) response.sendError(HTTP 상태 코드, 오류 메시지) Exception(예외) 자바의 메인 메서드를 실행하면 main이라는 이름의 쓰레드가 실행 mr-popo.tistory.com 지금부터 API의 경우 어떻게 예외 처리를 하면 좋은지 알아보자! @Slf4j @RestController public class ApiExceptionController {..
2022.04.09 -
스프링 예외 처리와 오류 페이지
서블릿은 크게 두가지 방식으로 예외 처리를 지원한다. Exception (예외) response.sendError(HTTP 상태 코드, 오류 메시지) Exception(예외) 자바의 메인 메서드를 실행하면 main이라는 이름의 쓰레드가 실행된다. 실행 도중에 예외 처리를 하지못하고 처음 실행한 main()메서드를 넘어서 예외가 던져지면, 예외 정보를 남기고 해당 쓰레드는 종료된다. 웹 애플리케이션의 경우, 사용자 요청별로 별도의 쓰레드가 할당되고, 서블릿 컨테이너 안에서 실행된다. 애플리케이션에서 예외가 발생했는데, 어디선가 try ~ catch로 예외를 잡아서 처리하면 아무런 문제가 없다. 그런데 만약에 애플리케이션에서 예외를 잡지 못하고, 서블릿 밖으로 까지 예외가 전달되면 어떻게 동작할까? 톰캣 같..
2022.04.06