작성
·
78
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
안녕하세요.
현재 '데이터베이스와 연결' 3:57를 보고있는데요
화면과 똑같이 작성한 후 알트+ 엔터로
선생님과 같이 Surround로 시작하는 try/catch를 적용하려는데 저는 위 화면처럼
try catch가 아닌 try with resource block이 나오는데
저걸 누른 후에도
이런식으로 이해하기 어려운 제안이 생기고
catch가 없이 나오는데요
어떤 연유로 이런식으로 되는건지 궁금합니다
지금 이대로 가면 강의와 제가 쓴 코드가 다를 것 같아 직접 쳐보려고 하는데 뭐가 어떻게 바뀌어서 이렇게 되는지 알려주세요
그리고 받아적는 와중에도
이렇게 되는데
누르면
강의처럼 cath(SQLException e) {
e.printStackTrace();
}
이렇게가 아니라
이렇게 되네요
도대체 뭐가 어떻게 바뀐거고 뭐가 맞는건지 모르겠습니다 ㅠ
이부분에서 런타임익셉션으로 떤진다고 하셨는데
정작 적은 건 IllegalStateException(e);인데
저는 런타임 익셉션으로 나옵니다 ㅠ
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. berichmore님.
질문해 주신 내용은 Java IDE, 특히 IntelliJ IDEA에서 제공하는 코드 자동완성 기능과 관련된 혼란을 겪으신 것 같습니다. 현재 상황에서 try-with-resources와 try-catch 구문의 차이와 IntelliJ의 자동 완성 기능이 표시되는 이유에 대해 설명드리겠습니다:
Try-with-resources와 Try-catch:
Closable
또는 AutoCloseable
을 구현한 객체를 사용하는 경우, 코드 블록이 종료될 때 자동으로 close()
메서드를 호출하여 자원을 해제합니다. 데이터베이스 연결이나 파일 입출력처럼 자원 관리를 직접 해야 하는 경우에 유용합니다.close()
메서드 같은 자원 해제는 자동으로 처리되지 않기 때문에 명시적으로 작성해야 합니다.IntelliJ에서의 자동완성 제안:
DriverManager.getConnection()
을 사용할 때, 이 코드가 예외를 던질 수 있음을 인지하고 적절한 처리 방법을 제안하는 것입니다. 과거에는 catch
블럭에 e.printStackTrace();
가 기본 설정이었지만, 최근 버전에서는 예외 처리 방법으로 RuntimeException
을 던지도록 기본 설정하는 경우도 있습니다.환경 설정에 따른 차이:
File and Code Templates
설정에서 try-catch
블럭의 기본 처리 방법을 변경할 수 있습니다. 이 설정을 통해 catch 블럭의 내용을 자신이 원하는 형태로 수정할 수 있습니다.유사한 질문과 관련된 기존의 해결 방안을 보시면 이러한 IntelliJ 설정에 대한 내용이 다루어졌던 적이 있습니다. 다음 링크를 참고하시면 도움이 될 것입니다:
김영한 강사님의 강의를 통해 배우고자 하는 방식과 IntelliJ의 기본 설정이 다르다면, 직접 설정을 변경하여 강의에 맞춰 동일한 방식으로 코딩을 연습하실 수 있습니다. 필요한 경우 JDK와 IntelliJ의 설정을 점검하여 원하는 방식으로 try-catch 또는 try-with-resources를 설정하시면 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아하 그렇군요 정말 감사드립니다 다정님!ㅎㅎ 다시
따라쳐볼게요