try catch
161
投稿した質問数 5
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
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
try(...) 괄호안에 객체를 사용하는경우 자동으로 코드블록이 종료될때 자원이 헤제합니다.그리고 자동완성에 의지하지마시고 직접따라치시는게
0
안녕하세요, 인프런 AI 인턴입니다. berichmore님.
질문해 주신 내용은 Java IDE, 특히 IntelliJ IDEA에서 제공하는 코드 자동완성 기능과 관련된 혼란을 겪으신 것 같습니다. 현재 상황에서 try-with-resources와 try-catch 구문의 차이와 IntelliJ의 자동 완성 기능이 표시되는 이유에 대해 설명드리겠습니다:
Try-with-resources와 Try-catch:
- Try-with-resources: 이 구문은 Java 7부터 도입된 기능으로,
Closable또는AutoCloseable을 구현한 객체를 사용하는 경우, 코드 블록이 종료될 때 자동으로close()메서드를 호출하여 자원을 해제합니다. 데이터베이스 연결이나 파일 입출력처럼 자원 관리를 직접 해야 하는 경우에 유용합니다.
- Try-catch: 일반적 예외 처리를 위한 구조로, 특정 코드를 실행하면서 발생할 수 있는 예외를 포착하고 처리하는 데 사용됩니다.
close()메서드 같은 자원 해제는 자동으로 처리되지 않기 때문에 명시적으로 작성해야 합니다.
- Try-with-resources: 이 구문은 Java 7부터 도입된 기능으로,
IntelliJ에서의 자동완성 제안:
- IntelliJ IDEA는 작성하는 코드의 맥락을 인식하여 가능한 유용한 코드를 제안합니다. 예를 들어,
DriverManager.getConnection()을 사용할 때, 이 코드가 예외를 던질 수 있음을 인지하고 적절한 처리 방법을 제안하는 것입니다. 과거에는catch블럭에e.printStackTrace();가 기본 설정이었지만, 최근 버전에서는 예외 처리 방법으로RuntimeException을 던지도록 기본 설정하는 경우도 있습니다.
- IntelliJ IDEA는 작성하는 코드의 맥락을 인식하여 가능한 유용한 코드를 제안합니다. 예를 들어,
환경 설정에 따른 차이:
- 이러한 자동 제안은 IntelliJ 설정에 따라 다르게 나타날 수 있습니다.
File and Code Templates설정에서try-catch블럭의 기본 처리 방법을 변경할 수 있습니다. 이 설정을 통해 catch 블럭의 내용을 자신이 원하는 형태로 수정할 수 있습니다.
- 이러한 자동 제안은 IntelliJ 설정에 따라 다르게 나타날 수 있습니다.
유사한 질문과 관련된 기존의 해결 방안을 보시면 이러한 IntelliJ 설정에 대한 내용이 다루어졌던 적이 있습니다. 다음 링크를 참고하시면 도움이 될 것입니다:
- try / catch 문 질문: Intellij의 try-catch 문에서 default 설정을 변경하는 방법에 대한 내용입니다.
김영한 강사님의 강의를 통해 배우고자 하는 방식과 IntelliJ의 기본 설정이 다르다면, 직접 설정을 변경하여 강의에 맞춰 동일한 방식으로 코딩을 연습하실 수 있습니다. 필요한 경우 JDK와 IntelliJ의 설정을 점검하여 원하는 방식으로 try-catch 또는 try-with-resources를 설정하시면 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
spring initialiser 어떤걸 선택해야될지 모르겠어요
0
31
2
트랜잭션 템플릿이 체크예외는 커밋하는 이유가 궁금합니다.
0
50
1
jdbc 학습하다 궁금해서 질문드려요
0
81
1
정상이체와 이체중 예외발생 차이
0
68
2
이번 강의부터가 JDBC 직접 사용 맞나요?
0
87
1
순수한 서비스 계층에 대한 의문???
0
82
2
3_4test, 4test 자동 리소스 안됨
0
58
2
데이터베이스 선택 관련 질문.
0
68
2
after 메서드 사용 유무
0
56
2
데이터베이스 접근 및 DB 락
0
53
1
@SpingBootTest, @TestConfiguration
0
56
1
Read Committed 격리 수준 사용 관련 질문
0
48
1
AopCheck Test 부분의 EnhancerBySpring 확인 법??
0
66
2
커리큘럼 관련 질문
0
76
1
서비서 계층 스프링 프레임워크 사용
0
87
1
validation(toMember)의 위치
0
83
2
데이터 계층에서 서비스 로직의 datasource를 인식하는 방법
0
165
2
member 상수 질문
0
120
2
ctrl + F6 이후로 con 인식이 안 됩니다
0
153
2
DrivenManager 와 Connection 반환에 대한 질문입니다!
0
109
1
섹션5 트랜잭션 템플릿관련 질문(이기종 DB)
0
116
1
세션1 테이블 조회결과 그림은 Redo 로그에 속하나요?
0
95
1
트랜잭션이 필요하지 않은 경우 DB 대신 파일 시스템을 사용하는 것이 더 효율적인가?
0
97
1
강의 14분쯤 Exception 질문
0
114
2

