inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

회원 서비스 개발

Exception 질문입니다.

212

ariwarabbang

작성한 질문수 7

0

안녕하세요 영한님,

매번 강의를 보고 커뮤니티 게시판에서 다른분들의 질문을 보고 저도 모르는걸 새로 배워가고있는데요 

질문글 중 

======================================

실무에서 보면 throw new xxxxException을 했을 경우

이를 호출하는 메서드에 뻘겋게 throw하거나 try catch하라고해서 똑같이 throw해주거나 했던거같은데...

MemberService는 왜 이런게 없을까요?

==============================

라는 내용에서 질문이 있습니다.

구글링으로 checked와 unchecked의 차이에 대해서 알아보았습니다.

다만 checked는트랜잭션에서 롤백이 안되고

unchecked는 롤백이 된다고 하는걸 알았습니다.

여기서 궁금한게 있습니다.

강의 18:17에 validateDuplicateMember 매소드 내에서

if(!findMember.isEmpty() 일 경우

uncheck 예외를 던지게 됩니다.

같은 Unchecked인 IndexOutOfBoundException의 경우 배열의 크기를 잘못 접근하면 try catch로 묶지 않았을 경우 프로그램이 종료가 되더라구요,

하지만 RunTimeException을 상속받는 IllegalStateException은 따로 try catch문으로 잡아주지 않아도 프로그램이 종료되지 않고 예외가 발생하면 이미 존재하는 회원입니다. 라는 로그를 볼 수있습니다.

스프링 내부 어디선가 throw new IllegalStateException을 받아주는것인가요?

받는다면 어디서 받아주는 것인가요? 

감사합니다.

웹앱 JPA spring-boot spring java

답변 1

0

김영한

안녕하세요. ariwarabbang님

자바의 메인 메서드를 그냥 직접 실행했는데 예외를 처리할 수 없는 상황이면 해당 메인 메서드를 실행한 쓰레드는 종료되면서, 프로그램이 종료됩니다.

스프링 부트는 톰캣 서버를 내장하게 되는데요.

해당 예외를 처리하지 못하면 예외가 톰캣 서버까지 올라가게 됩니다.

이 톰캣 서버는 해당 예외를 남기고 프로그램을 종료하지는 않습니다.

(예외 하나로 서버가 종료되면 큰일이겠지요?)

서버와 예외처리와의 관계에 관한 더 자세한 내용은

스프링 MVC 2편 강의의 섹션 8. 예외 처리와 오류 페이지를 참고해주세요.

감사합니다.

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

30

1

sdk 설정 오류

0

71

2

오탈자 - @Transactional

0

68

1

src/test/resources 테스트 경로 문제

0

68

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

71

1

MemberRepositoryTest 실행오류

0

91

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

198

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

154

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

58

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

82

1

기본 생성자

0

67

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

107

1

멤버서비스테스트 부분에서 막힙니다.

0

176

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

125

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

129

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

122

1

24분 27초 연관관계 편의 메서드 위치

0

118

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

115

2

빌드 툴, Gradle

0

65

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

82

2

Repository에서 EntityManager 주입 방식 차이

0

98

1

롬복과 사용자 정의 setter 메서드

0

78

1

주문 목록 조회 fetch join 질문드립니다

0

91

1

dirty checking 질문드립니다.

0

88

1