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

ariel123님의 프로필 이미지

작성한 질문수

(2024) 일주일만에 합격하는 정보처리기사 실기

예외처리 (try-catch)

try-catch에서

해결된 질문

24.07.22 17:26 작성

·

84

0

public static void checkAge(int age) {

if (age < 18) { throw new IllegalArgumentException("나이는 18세 이상이어야 합니다.");

}

System.out.println("나이가 적합합니다.");

}

이거에서 if가 18이상이면 if문조건을 충족하지 않으므로 빠져나가서 나이가 적합합니다. 를 프린트 하는 건 알겠는데

15세일때 if문 조건(age<18)을 충족해서 throw로 예외를 던지고 나서 실행한 뒤

System.out.println("나이가 적합합니다."); 를 다시 실행해야 하는 거 아닌가요?

checkAge() 가

System.out.println("나이가 적합합니다.");

를 실행해야 끝난다고 생각되어서요;.

else문이 아니라 그냥 if문이라서 ..throw 에 대해서 조금더 자세한 설명해주실수있나요??

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

2024. 07. 22. 21:16

throw는 그 즉시 예외(오류)를 발생시킵니다.

try 블럭 안에서 예외가 발생하면 그 즉시 catch문으로 이동하기 때문에 아래에 print문을 실행하지 않고 아래로 예외처리 부분으로 넘어갑니다.

0

김다훈님의 프로필 이미지

2024. 07. 22. 18:48

저도 이 부분에 강사님께 추가로 질문드릴 게 있는데,

마지막에 trhow new (예외)......로 예외를 던져주면 catch 구문 실행 후 finally 구문을 무조건 실행해야한다고 들었는데 이 코드에선 finally가 안보여서요,

finally가 없어도 작동하나요?

주말코딩님의 프로필 이미지
주말코딩
지식공유자

2024. 07. 22. 21:15

네. finally는 없어도 됩니다. 예외처리 여/부와 상관없이 꼭 실행해야하는 구문이 있는 경우에 명시하기 위해 있는 키워드입니다.

ariel123님의 프로필 이미지

작성한 질문수

질문하기