Book/Effective Java

[Book] ITEM 9) try-finally λŒ€μ‹  try-with-resource λ₯Ό μ‚¬μš©ν•˜λΌ

kkkkkkkkkkkk 2022. 3. 19. 20:03

🀒  try-finally μ‚¬μš©

public String fileRead1(String file)throws IOException {
    BufferedReader br = null;
    try{
        br = new BufferedReader(new FileReader(file));
        return br.readLine();
    } catch(Exception e) {
        e.printStackTrace();
    }finally{
        br.close();
    }
        return file;
    }

μ˜ˆμ™Έλ₯Ό μž‘λŠ”λ° μ—¬λŸ¬μ€„μ˜ μ½”λ“œκ°€ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 경우 μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ μŠ€νƒ νŠΈλ ˆμ΄μŠ€μ— 좔적이 μ–΄λ €μšΈ κ²ƒμž…λ‹ˆλ‹€.

이 λ°©λ²•μ˜ λŒ€μ•ˆμ μ€ try-with-resource λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

🀒  try-with-resource

public String fileRead2(String file)throws IOException {
    try(BufferedReader br = new BufferedReader(new FileReader(file))) {
        return br.readLine();
    }
}

이 방법은 μœ„μ˜ 방법 보닀 μŠ€νƒ 트레이슀의 좔적이 μš©μ΄ν•΄μ§€λ©° κ°„κ²°ν•œ μ½”λ“œλ‘œ ν‘œν˜„λ˜κ³  μžλ™μœΌλ‘œ μžμ›μ„ λ°˜λ‚©ν•  수 μžˆμ–΄ 이방법을 ꢌμž₯ν•œλ‹€.

ν•˜μ§€λ§Œ Autocloseable μΈν„°νŽ˜μ΄μŠ€κ°€ κ΅¬ν˜„λœ 것을 μ‚¬μš©ν•΄μ•Ό κ°€λŠ₯ν•œ λ¬Έλ²•μ΄λ―€λ‘œ Autocloseableκ°€ κ΅¬ν˜„λ˜μ–΄ μžˆλ‚˜ ν™•μΈν•˜κ³  μ‚¬μš©ν•˜μž.