인프런 커뮤니티 질문&답변

김남현님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

예외 발생 시킬때

20.10.14 16:47 작성

·

161

0

문득 궁금한 점이 예외가 발생되어서 catch문으로 잡아서 처리하지 않으면 프로그램이 종료되는걸로 알고 있습니다.

여기서 중복 이름 일때 예외 발생시키고 어디서도 catch로 잡아 주지 않았는데 왜 프로그램이 종료되지 않는지 궁금합니다 ㅠㅠ

답변 2

1

김남현님의 프로필 이미지
김남현
질문자

2020. 10. 14. 22:30

아하 쓰레드를 생각 못했었네요 감사합니다

0

김영한님의 프로필 이미지
김영한
지식공유자

2020. 10. 14. 22:20

안녕하세요. 김남현님

자바를 처음 실행하는 main() 메서드에서 예외를 잡지 못하면 프로그램이 종료됩니다.

그런데 웹 애플리케이션은 웹 서버(톰켓)이 뜨게 되는데요.

이 웹서버 자체는 자바이기 때문에 main() 메서드로 실행되는게 맞습니다.

그런데 이 웹서버는 고객의 HTTP 요청이 넘어오면 별도의 쓰레드를 생성해서 실행합니다. 따라서 예외가 넘어와도 해당 쓰레드에만 영향을 주게 되어있습니다. 그리고 웹 서버는 예외가 넘어오면 별도의 예외 처리를 하는 로직이 모두 들어있습니다.

감사합니다.