item 77 lsucret - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
API ์ค๊ณ์๊ฐ ๋ฉ์๋ ์ ์ธ์ ์์ธ๋ฅผ ๋ช ์ํ๋ ๊น๋ญ์ ๋ฉ์๋ ์ฌ์ฉ์ ์ ์ ํ ์กฐ์น๋ฅผ ์ทจํด๋ฌ๋ผ๊ณ ๋งํ๋ ๊ฒ์ด๋ค.
try {
...
} catch (SomeException e) {
// catch ๋ธ๋ก์ ๋น์๋๋ฉด ์์ธ๊ฐ ๋ฌด์๋๋ค. ์์ฃผ ์์ฌ์ค๋ฌ์ด ์ฝ๋๋ค!
}
catch ๋ธ๋ก์ ๋น์๋๋ฉด ์์ธ๊ฐ ์กด์ฌํ ์ด์ ๊ฐ ์์ด์ง๋ค.
์ด๋ฐ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๋ค๋ฉด ๋จธ๋ฆฟ์์ ์ฌ์ด๋ ์ ์ธ๋ฆฌ์.
ex) FileImputStream
์ ๋ซ๋ ์ฝ๋
ํ์ผ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ผ๋ ๋ณต๊ตฌํ ๊ฒ์ด ์๊ณ
์คํธ๋ฆผ์ ๋ซ๋๋ค๋๊ฑด ํ์ํ ์ ๋ณด๋ฅผ ์ด๋ฏธ ์ฝ์๋ค๋ ๋ป์ด๋ ๋จ์ ์์ ์ ์ค๋จํ ์ด์ ๋ ์๋ค.
์์ธ๋ฅผ ๋ฌด์ํ๊ธฐ๋ก ์ ํ๋ค๋ฉด ๊ทธ ์ด์ ๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ธฐ๊ณ ์์ธ ๋ณ์์ ์ด๋ฆ์ ignored๋ก ์์ฑํ๋ค.
Future<Integer> f = exec.submit(planarMap::chromaticNumber);
int numColors = 4; // ๊ธฐ๋ณธ๊ฐ. ์ด๋ค ์ง๋๋ผ๋ ์ด ๊ฐ์ด๋ฉด ์ถฉ๋ถํ๋ค.
try {
numColors = f.get(1L, TimeUnit.SECONDS);
} catch (TimeoutException | ExecutionException ignored) {
// ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๋ค(์์ ์๋ฅผ ์ต์ํํ๋ฉด ์ข์ง๋ง, ํ์๋ ์๋๋ค.)
}
๋น catch ๋ธ๋ก์ ๋ชป ๋ณธ ์ฒ ์ง๋์ณ๋ฒ๋ฆฐ๋ค๋ฉด
ํ๋ก๊ทธ๋จ์ ์ค๋ฅ๋ฅผ ๋ด์ฌํ ์ฑ ๋์ํ๊ฒ ๋๊ณ ์ถํ ๋ฌธ์ ์ ์์ธ๊ณผ ์๋ฌด ์๊ด์๋ ๊ณณ์์ ๊ฐ์๊ธฐ ์ฃฝ์ด๋ฒ๋ฆด ์๋ ์๋ค.
์์ธ๋ฅผ ์ ์ ํ ์ฒ๋ฆฌํ๋ฉด ์ค๋ฅ๋ฅผ ์์ ํ ํผํ ์ ์์ผ๋ฉฐ,
๋ฌด์ํ์ง ์๊ณ ๋ฐ๊นฅ์ผ๋ก ์ ํ๋๊ฒ๋ง ๋๋ฌ๋ ์ต์ํ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ๋จ๊ธด ์ฑ ํ๋ก๊ทธ๋จ์ด ์ ์ํ ์ค๋จ๋๊ฒ ํ ์ ์๋ค.