Item 71. Necessary Checked Exception
ํ์ ์๋ ๊ฒ์ฌ ์์ธ ์ฌ์ฉ์ ํผํ๋ผ
๊ฒ์ฌ ์์ธ๋ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด์ง๋ง ์ ๋๋ก ํ์ฉํ๋ฉด API์ ํ๋ก๊ทธ๋จ์ ์ง์ ๋์ผ ์ ์๋ค.(์์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํจ์ผ๋ก์จ API ์ฌ์ฉ์๊ฐ ์์ธ ์ํฉ์์ ๋ณต๊ตฌํ ์ ์๋๋ก ๋์์ค) ํ์ง๋ง ๊ณผํ๊ฒ ์ฌ์ฉํ๋ฉด ์ฐ๊ธฐ ๋ถํธํ API๋ฅผ ๋ณ๊ณ , ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ์ ์ฝ๋ ์ชฝ์ ๋ถ๋ด์ ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ผญ ํ์ํ ๊ณณ์๋ง ๊ฒ์ฌ ์์ธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๊ฒ์ฌ ์์ธ๋ฅผ ์ฌ์ฉํด์ผํ๋ ๊ฒฝ์ฐ
์๋์ ๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ์ ๊ฒ์ฌ ์์ธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ด ์ข๋ค.
API๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋๋ผ๋ ๋ฐ์ํ ์ ์๋ ์์ธ
์์ธ ๋ฐ์ ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋ฏธ ์๋ ์กฐ์น๋ฅผ ์ทจํ ์ ์๋ ๊ฒฝ์ฐ
ํ์ง๋ง ๋ง์ฝ ์ ๋ ์ค ํ๋๋ผ๋ ํด๋นํ์ง ์์ผ๋ฉด ๊ฒ์ฌ ์์ธ๋ณด๋ค๋ ๋น๊ฒ์ฌ ์์ธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๊ฒ์ฌ ์์ธ ์ฌ์ฉ ํํผ
๊ฒ์ฌ ์์ธ๋ฅผ ๋์ง๋ ๊ฒ์ ๋ง์ ๋ถ๋ด์ ์ฃผ๊ธฐ ๋๋ฌธ์ ์ต์ํ ํ๋ ๊ฒ์ด ์ข๋ค. ๋๋ฌธ์ ๊ฒ์ฌ ์์ธ๋ฅผ ํํผํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
์ต์
๋ ๋ฐํ
๊ฒ์ฌ ์์ธ๋ฅผ ํํผํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ต์ ๋์ ๋ฐํํ๋ ๊ฒ์ด๋ค. ์ต์ ๋์ ๋ฐํํ๋ฉด์ ์์ธ ๋์ ๋น ์ต์ ๋์ ๋ฐํํ๋ ๋ฐฉ์์ผ๋ก ๊ฒ์ฌ ์์ธ๋ฅผ ํํผํ ์ ์๋ค.(๋์ ์์ธ ๋ฐ์ ์ด์ ์ ๋ํด ๋ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ค.)
์ํ ๊ฒ์ฌ ๋ฉ์๋
๊ธฐ์กด ๊ฒ์ฌ ์์ธ๋ฅผ ๋์ง๋ ๋ฉ์๋๋ฅผ ์๋ ๋ ๊ฐ์ ๋ฉ์๋๋ก ๋ถ๋ฆฌํ์ฌ ๊ฒ์ฌ ์์ธ๋ฅผ ํํผํ ์ ์๋ค.
์ํ ๊ฒ์ฌ ๋ฉ์๋: ์๋ขฐ๊ฐ ๋์ ธ์ง์ง ์ฌ๋ถ๋ฅผ boolean์ผ๋ก ๋ฐํ
๋์ ๋ฉ์๋: ์ํ ๊ฒ์ฌ ๋ฉ์๋๋ฅผ ํตํด ๊ฒ์ฌ ์์ธ๋ฅผ ํํผํ ๋ค ๋์์ ์ํ(๊ฒ์ฌ ์์ธ ๋์ ๋น๊ฒ์ฌ ์์ธ๋ฅผ ๋์ง ์ ์์)
class Example {
public static void main(String[] args) {
if (obj.actionPermitted(args)) {
obj.action(args);
} else {
// ์์ธ ์ํฉ ๋์ฒ ์ฝ๋
}
}
}
Last updated
Was this helpful?