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

11 1님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

서블릿 예외 처리 - 시작

pdf의 Exception 자바 직접 실행 부분에서 궁금한 점이 있습니다.

해결된 질문

작성

·

143

·

수정됨

1

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]


아래는 pdf에 나온 설명입니다.

 

Exception(예외)

자바 직접 실행 자바의 메인 메서드를 직접 실행하는 경우 main 이라는 이름의 쓰레드가 실행된다. 실행 도중에 예외를 잡지 못하고 처음 실행한 main() 메서드를 넘어서 예외가 던져지면, 예외 정보를 남기고 해당 쓰 레드는 종료된다.

 

자바 문법책으로 공부할 때 try catch 없이 예외가 터지면 프로그램이 종료되고,

try catch 없더라도 throws를 통해 메서드를 호출한 곳으로 떠넘기면, 그곳에서 try catch를 하거나, 아니면 또 계속 떠넘겨서 main 메서드에서도 throws를 통해 JVM이 예외를 처리하는 방법도 있다고는 알고 있습니다.

 

강의 자료 pdf에 나온 "실행 도중에 예외를 잡지 못하고 처음 실행한 main() 메서드를 넘어서 예외가 던져지면"

 

이 의미는 throws 키워드를 사용해서 계속 떠넘겼다는 의미인가요? 아니면 throws를 안 쓰더라도 저런 식으로 예외가 넘어간다고 생각하면 되는 건가요?

답변 1

1

안녕하세요. 11 1님, 공식 서포터즈 y2gcoder입니다.

런타임 예외일 경우 명시적으로 throws 를 사용하지 않더라도 해당 예외를 던질 수 있습니다. 이를 전제로 해서 말씀을 드리면 throws 키워드를 통해서 main 까지 예외를 던졌고, main 에서도 해당 예외를 잡지 않았을 때 위에 인용하신대로 처리가 된다고 이해하시면 될 것 같습니다 🙂

감사합니다.

11 1님의 프로필 이미지
11 1
질문자

아 그럼 제가 본문에 적은 내용(throws를 해야 상위에게 떠넘긴다.)은 체크 예외에 해당되는 거고, 런타임 예외의 경우엔 throws를 하든 안 하든 똑같이 상위로 넘어간다고 생각하면 될까요?

 

자바 공부할 때 이 내용은 안 배운 거 같은데 검색해 보니 자바 기본 문법 같네요..

감사합니다!

체크 예외와 언체크(런타임) 예외의 차이는

이름에서 보이는 것처럼 넘어가기 위해서 체크를 해야 하느냐, 체크하지 않아도 넘어갈 수 있느냐 로 간단하게 말씀드릴 수 있을 것 같습니다!

영한님의 김영한의 실전 자바 - 중급 1편 강의 중 섹션 9, 10 강을 학습하시는 것을 추천합니다!

아마

11 1님의 프로필 이미지

작성한 질문수

질문하기