English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
try-with-resources는 JDK에서 7 에서 새로운 예외 처리 기구를 제공합니다. try 문에서 닫히는 것을 쉽게 할 수 있습니다.-catch 블록에서 사용하는 리소스.-with-resources 문은 각 리소스가 문이 끝날 때마다 닫히도록 보장합니다. java.lang.AutoCloseable 인터페이스를 구현한 모든 객체(그 중에는 java.io.Closeable을 구현한 모든 객체가 포함됩니다)는 리소스로 사용할 수 있습니다.
try-with-resources는 JDK에서 9 resources 문에서는 final 또는 final과 동등한 변수가 있는 경우, try 문에서 사용할 수 있습니다.-with-resources 문에서 해당 변수를 사용하면 try 문에서는 그 변수를 선언할 필요가 없습니다.-with-resources 문에서 새로운 변수를 선언합니다.
import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; public class Tester { public static void main(String[] args) throws IOException { System.out.println(readData("test")); } static String readData(String message) throws IOException { Reader inputString = new StringReader(message); BufferedReader br = new BufferedReader(inputString); try (BufferedReader br1 = br) { return br1.readLine(); } } }
출력 결과는 다음과 같습니다:
test
위 예제에서는 try 블록에서 리소스 br를 선언해야 합니다.1그런 다음 사용할 수 있습니다.
Java에서 9 에서는 리소스 br를 선언할 필요가 없습니다.1 그리고 같은 결과를 얻을 수 있습니다.
import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; public class Tester { public static void main(String[] args) throws IOException { System.out.println(readData("test")); } static String readData(String message) throws IOException { Reader inputString = new StringReader(message); BufferedReader br = new BufferedReader(inputString); try (br) { return br.readLine(); } } }
실행 출력 결과는 다음과 같습니다:
test
처리해야 하는 자원을 닫을 때 try-with-resources 문은 try-finally 문. 생성된 코드는 더 간결하고 명확하며, 생성된 예외가 더 유용합니다. try-with-resources 문은 자원을 닫아야 하는 코드를 작성할 때 더 쉽고, 오류 없이 사용할 수 있으며, try-finally 문은 실제로 불가능합니다.