try-with-resources가try-finally보다 우선
기초 회고
1. finally 자구
코드가 이상을 던졌을 때, 방법에 남아 있는 코드의 처리를 중지합니다. 만약 이 방법이 일부 로컬 자원을 얻었다면, 반드시 이 자원을 회수해야 합니다.
이럴 때finally 자구가 필요할 것 같습니다.다음 세 가지 경우 finally 자구를 실행합니다.
1. 코드가 이상을 던지지 않았습니다. 프로그램은try문장의 모든 코드를 우선적으로 실행한 다음finally 자구의 코드를 실행합니다.
2.catch에서 이상이 포착되면 먼저try문장의 코드를 실행하고 이상이 발생할 때까지try문장에 남은 코드를 건너뛰고 대응하는catch에서 마지막으로finally문장의 코드를 실행한다.
3. 코드가 이상을 던지지만catch에서 포획하지 않는 경우 우선try문장의 코드를 실행하고 이상이 발생할 때까지try문장에 남은 코드를 건너뛰고finally자구의 문장을 실행한다.
주:try 문장은finally만catch가 없을 수도 있고,catch만finally가 없을 수도 있습니다.
try-with-resources
일반try-catch-finally 구문은 다음과 같습니다.
try{
//
}catch (Exception ex){
//
}finally {
//
}
try-with-resources 구문:
try (Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8", "root", "admin");
Statement statement = connection.createStatement();) {//
//
//
} catch (SQLException e) {
e.printStackTrace();//try-with-resources catch finally ,
}
일반적인try-catch-finally 문장과 비교하면 주요한 차이점은 다음과 같다.
1.try 뒤에 작은 괄호를 붙여서 작은 괄호 안에 자원의 초기화를 완성하고 같은 작은 괄호 안에 여러 자원을 설명할 수 있습니다.
2.try 블록이 종료될 때close 방법을 자동으로 호출하여finally에서 자원을 닫지 않아도 됩니다.
왜 try-with-resources를 우선적으로 사용합니까?주요 원인은 다음과 같습니다.
만약 한 층일 뿐이라면try-catch-finally는 그리 복잡하게 보이지 않을 것이다.그러나try안이나finally안에 다른try-catch-finally를 더 많이 끼워 넣은 다음에 자원을 현저하게 닫아야 하기 때문에 코드가 매우 불필요해 보일 수 있다.
주의해야 할 것은 AutoCloseable 인터페이스를 실현하는 것은try-with-resources 문장을 사용하는 전제 조건이다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.