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

Aurora님의 프로필 이미지
Aurora

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 개발

회원 서비스 개발, 테스트 시 throw new IllegalStateException(); 코드 작성 오류

작성

·

465

0


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

[질문 내용]
회원 서비스 개발 강의와 그 다음 강의에서 throw new IllegalStateException("이미 존재하는 회원입니다.") 이 코드를 작성하면 저는 try catch 로 감싸라고 오류가 나옵니다.

왜 선생님은 오류가 나지 않으시나요?

답변 2

0

안녕하세요. Aurora님, 공식 서포터즈 코즈위버입니다.

IllegalStateException()은 RuntimeException이라 별도의 try-catch문이 필요하지 않습니다.

원인을 알기위해 코드를 확인할 필요가 있습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

Aurora님, 회원 서비스 개발 강의에서 발생한 throw new IllegalStateException("이미 존재하는 회원입니다."); 관련 문제를 질문해주셨군요.

이 부분은 예외를 던지는 코드로서, try-catch 구문으로 감싸지 않아도 문법적으로는 문제가 없습니다. 다만, 선생님의 환경에서 오류가 발생하지 않는 이유에 대해서는 몇 가지 확인해볼 사항이 있습니다:

  1. 인텔리제이의 인스펙션 설정: 인텔리제이에서는 프로젝트나 코드의 문제를 자동으로 검사해주는 인스펙션 기능이 있습니다. 이 설정에 따라 같은 코드에 대해 경고나 오류로 간주하는 정도가 다를 수 있습니다.

  2. 예외 처리 전략: 자바 어플리케이션을 개발할 때, 보통 예외 처리 전략을 가지고 있습니다. 예외를 던지는 부분에서 try-catch를 사용하지 않고, 예외를 호출한 상위 로직에서 일괄적으로 처리하는 경우가 많습니다. 선생님의 코드에서는 상위 로직에서 예외 처리를 하거나, 또는 해당 예외를 처리하기 위한 별도의 처리기(exception handler)를 사용하고 있을 수 있습니다.

  3. 체크된 예외와 언체크된 예외: IllegalStateExceptionRuntimeException을 상속받는 언체크드(unchecked) 예외입니다. 언체크드 예외는 명시적으로 처리하지 않아도 되기 때문에 try-catch 없이 throw를 사용할 수 있습니다.

그럼에도 불구하고 Aurora님의 인텔리제이가 try-catch로 감싸라고 오류를 나타내는 것은 특정 설정이나, 코드의 다른 부분에서 문맥적인 요소가 영향을 미치고 있을 수 있습니다. 구체적인 코드 상황을 봐야 정확한 원인을 파악할 수 있지만, 일반적인 상황에서는 언체크드 예외를 try-catch로 감싸야 할 의무는 없습니다.

이해가 되지 않는 부분이거나 추가적인 질문이 있는 경우, 질문하신 내용과 함께 해당 코드 블록을 포함하여 질문해주시면 더 자세히 답변드릴 수 있을 것 같습니다.

Aurora님의 프로필 이미지
Aurora

작성한 질문수

질문하기