try-catch์ try-with-resources
try-catch-finally
try-catch-finally ๋ฌธ์ ์๋ฐ7 ์ด์ ์ ๋์จ ์์ธ ์ฒ๋ฆฌ ๊ตฌ๋ฌธ์ผ๋ก ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ํฌํจํ ์ ์๋ค.
์ฌํฝ ํ ๋ฐ๋ฉ์ ํด์ฃผ์ด์ผ ํ๋ ์์๋ค์ Closeable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ ์์ผ๋ฉฐ ์ฌ์ฉ ํ close ๋ฉ์๋๋ฅผ ์ง์ ํธ์ถํ์ฌ ๋ฐ๋ฉํด์ผ ํ๋ค.
์์ ๋ฐ๋ฉ์ด ์ด๋ฃจ์ด์ง์ง ์๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์๊ธธ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ํ๋ก์ธ์ค, ์ค๋ ๋์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๋ฐ๋ผ์ finally ๋ธ๋ก ๋ด์์ ์์์ ํด์ ํด์ผ ํ๋ค.
์์์ ๋ฐ๋ฉํ๋ ์ถ๊ฐ์ ์ธ ์ฝ๋๊ฐ ํ์ํ๋ฉฐ ์ค์๋ ์๋ฌ๋ก ์์์ ๋ฐ๋ฉํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ฐ 7 ๋ถํฐ ์์์ ์๋์ผ๋ก ๋ฐ๋ฉํด์ฃผ๋ try-with-resources ๋ฌธ๋ฒ์ด ๋์ ๋์๋ค.
try-with-resources
try-with-resources ๋ Java7 ๋ถํฐ ๋์ ๋ ์์ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ตฌ๋ฌธ์ด๋ค.
AutoClosable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ ์๋ ์์์, ์ฌ์ฉ ํ ์๋์ผ๋ก ๋ฐ๋ฉํด์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์ด๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๊ฐ๋
์ฑ์ด ์ข์์ง๊ณ ์์ธ ๋ฐ์ ์ ์์์ด ์์ ํ๊ฒ ํด์ ๋ ์ ์๋ค.
1
2
3
4
5
try (/*์์ ์ด๊ธฐํ*/) {
// ์์์ ์ฌ์ฉํ๋ ์ฝ๋
} catch (์์ธ ํ์
๋ณ์) {
// ์์ธ ์ฒ๋ฆฌ ์ฝ๋
}
AutoCloseable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ง try ๋ธ๋ก ๋ด์์ ๋ฆฌ์์ค๋ก ์ฌ์ฉํ ์ ์๋ค.
์ฃผ๋ก ํ์ผ, ์์ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
Connection.java
Closeable๊ณผ AutoCloseable์ ๊ด๊ณ
๊ธฐ์กด์ Closeable ์ ๋ถ๋ชจ ์ธํฐํ์ด์ค AutoCloseable ๋ฅผ ์ถ๊ฐํ ํํ์ ๋๋ค. Closeable์ AutoCloseable์ ํ์ฅํ ํ์ ์ธํฐํ์ด์ค์ ๋๋ค. ๋ฐ๋ผ์ Closeable์ AutoCloseable์ด ์ ๊ณตํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ํฌํจํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ก ๊ธฐ์กด์ ๊ตฌํ๋ ์์ ํด๋์ค ๋ชจ๋ try-with-resources ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
-
try-catch
๋ฌธ์์๋ ์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ ๋ชจ๋ ์ฝ๋๊ฐ ํฌํจ๋ ์ ์์ผ๋ฉฐ, ํน์ ๊ฐ์ฒด ํ์ ์ ์ ํ๋์ง ์์ต๋๋ค. -
try-with-resources
๋ฌธ์์๋ AutoCloseable ๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ง์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋ฆฌ์์ค ๋์๋ฅผ ๋ฐฉ์งํ ์ ์์ด ์์ ๊ด๋ฆฌ์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.