- ๋ฌธ์ ์ :
- ์์ธ๋ฅผ ๋ฌด์ํ๋ฉด ๋ฌธ์ ์ํฉ์ ์ ์ ํ ์ฒ๋ฆฌํ์ง ๋ชปํด ์ค๋ฅ๊ฐ ๋์ ๋ ์ ์๋ค.
- ๋น
catch๋ธ๋ก์ ํ์ฌ๊ฒฝ๋ณด๋ฅผ ๊บผ๋ฒ๋ฆฌ๋ ๊ฒ๊ณผ ๊ฐ์. ๋ฌธ์ ๋ฅผ ์๋ฆฌ์ง ์๊ณ ์จ๊ธด๋ค. - ํ๋ก๊ทธ๋จ์ด ์ ์์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์์ธ์ ํ์ ํ๊ธฐ ์ด๋ ค์ด ์ง์ ์์ ๊ฐ์์ค๋ฌ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์์: ๋์ ์์ธ ์ฒ๋ฆฌ
try {
// ์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ ์ฝ๋
} catch (SomeException e) {
// ์๋ฌด๋ฐ ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์
}- ์์ธ๋ฅผ ๋ฌด์ํด์ผ ํ ์ํฉ์ด ์กด์ฌํ๊ธด ํ์ง๋ง, ์ด๋ ๋งค์ฐ ๋๋ฌผ๋ค.
- ์์ธ๋ฅผ ๋ฌด์ํ ๊ฒฝ์ฐ๋ผ๋ ๋ฐ๋์ ๊ทธ ์ด์ ๋ฅผ ๋ช ํํ ์ฃผ์์ผ๋ก ๋จ๊ธฐ๊ณ , ๊ฐ๋ฅํ๋ฉด ๋ก๊ทธ๋ฅผ ๋จ๊ฒจ์ผ ํ๋ค.
๋ํ์ ์ธ ์์ธ ๋ฌด์ ์ฌ๋ก
- ํ์ผ ๋ซ๊ธฐ: ์ ๋ ฅ ์ ์ฉ ์คํธ๋ฆผ์ ๋ซ๋ ๊ณผ์ ์์ ์์ธ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ณต๊ตฌํ ๊ฒ์ด ์์ผ๋ฏ๋ก ๋ฌด์ ๊ฐ๋ฅ.
์ฌ๋ฐ๋ฅธ ์์ธ ๋ฌด์ ์์
try {
inputStream.close();
} catch (IOException ignored) {
// ํ์ผ ๋ซ๋ ์ค ์์ธ ๋ฐ์: ๋ณต๊ตฌ ํ์ ์์. ๋ก๊ทธ ์์ฑ ๊ฐ๋ฅ.
logger.warn("Failed to close the input stream, but no action needed.");
}ignored๋ณ์ ์ด๋ฆ ์ฌ์ฉ: ์์ธ๋ฅผ ๋ช ์์ ์ผ๋ก ๋ฌด์ํ๋ค๋ ์๋๋ฅผ ์ฝ๋์ ๋ด๋๋ค.
์ ์ ํ ๋์ฒด ์กฐ์น
- ์์ธ๊ฐ ๋ฐ์ํ์ ๋, ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ ๋์์ ์ ์งํ ๋์ฒด ๋ฐฉ์์ ๋ง๋ จ.
- ์์: ํ์์์ ๋ฐ์ ์ ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ.
Future<Integer> future = executor.submit(task);
int result = DEFAULT_VALUE; // ๊ธฐ๋ณธ๊ฐ
try {
result = future.get(10, TimeUnit.SECONDS); // ํ์์์ ์ค์
} catch (TimeoutException | ExecutionException ignored) {
// ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ
logger.warn("Task timed out. Using default value.");
}๋ก๊ทธ ์์ฑ
- ์์ธ ์ํฉ์ ๋ฌด์ํด์ผ ํ๋ค๋ฉด ๋ฐ๋์ ๋ก๊ทธ๋ฅผ ๋จ๊ฒจ ์ถํ ๋ถ์ ๊ฐ๋ฅํ๋๋ก ํ๋ค.
- ์์:
try {
someMethod();
} catch (SomeException e) {
logger.error("An exception occurred during someMethod execution", e);
}๊ฐ๋ฅํ ํ ์์ธ๋ฅผ ๋ฐ๊นฅ์ผ๋ก ์ ํ
- ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ฑ ์์ด ์๋ ๊ฒฝ์ฐ, ์์ ํธ์ถ์์๊ฒ ์์ธ๋ฅผ ์ ํ.
- ์์ธ๋ฅผ ๋ฌด์ํ์ง ์์ผ๋ฉด ์ต์ํ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ๋จ๊ธธ ์ ์์.
์์: ์์ธ ์ ํ
public void process() throws IOException {
// ์์ ํธ์ถ์๊ฐ ์ฒ๋ฆฌํ๋๋ก ์์ธ๋ฅผ ๋์ง
someMethod();
}- ์์ธ๋ฅผ ์ ์ ํ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ค๋ฅ๋ฅผ ๋ด์ฌํ ์ฑ ๋์ํ๊ฒ ๋๋ค.
- ๋ฌธ์ ๊ฐ ๋์ ๋๋ค๊ฐ, ๋ฌธ์ ์ ์์ธ๊ณผ ์๊ด์๋ ๊ณณ์์ ๊ฐ์์ค๋ฌ์ด ํ๋ก๊ทธ๋จ ์ข ๋ฃ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ์์ธ๋ฅผ ์ ํํ๋ฉด ๋๋ฒ๊น ์ ๋ณด๊ฐ ๋จ์ ์ค๋ฅ ์์ธ์ ์ ์ํ ํ์ ํ ์ ์๋ค.
- ์์ธ๋ฅผ ์ ๋ ๋ฌด์ํ์ง ๋ง ๊ฒ:
- ๋ฌด์ํด์ผ ํ ๊ฒฝ์ฐ, ๋ช ํํ ์ด์ ๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ธฐ๊ณ ๋ก๊ทธ๋ฅผ ์์ฑ.
- ๊ฐ๋ฅํ๋ฉด ๊ธฐ๋ณธ ๋์์ผ๋ก ๋์ฒดํ๊ฑฐ๋, ์์ ํธ์ถ์์๊ฒ ์์ธ๋ฅผ ์ ํ.
- API ์ค๊ณ์์ ์๋๋ฅผ ์กด์คํ ๊ฒ:
- ๋ฉ์๋ ์ ์ธ์ ๋ช ์๋ ์์ธ๋ ์ ์ ํ ์ฒ๋ฆฌํ๋ผ๋ ์๋์.
- ์ด๋ฅผ ๋ฌด์ํ๋ฉด ํ๋ก๊ทธ๋จ์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ํด์น ์ ์์.
- ๋ก๊ทธ๋ฅผ ํ์ฉํ๋ผ:
- ์์ธ ๋ฐ์ ์ ์ํฉ์ ๊ธฐ๋กํ์ฌ ์ถํ ์์ธ ๋ถ์์ด ๊ฐ๋ฅํ๋๋ก ํ๋ค.
- ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๋ฉด ์ ํํ๋ผ:
- ์์ธ๋ฅผ ์ ์ ํ ์ฒ๋ฆฌํ์ง ๋ชปํ ๊ฒฝ์ฐ, ๋ฐ๊นฅ์ผ๋ก ์ ํํ์ฌ ์์ ํธ์ถ์๊ฐ ์ฒ๋ฆฌํ๋๋ก ํ๋ค.
- ์์ธ๋ ๋ฌธ์ ์ํฉ์ ํฌ์ฐฉํ๊ณ ์ ์ ํ ๋์ฒํ๊ธฐ ์ํด ์กด์ฌํ๋ค.
- ์์ธ๋ฅผ ๋ฌด์ํ๊ฑฐ๋ ์๋ชป ์ฒ๋ฆฌํ๋ฉด ํ๋ก๊ทธ๋จ์ ์ ๋ขฐ์ฑ๊ณผ ์์ ์ฑ์ ์ ํ์ํฌ ์ํ์ด ํฌ๋ค.
- ์์ธ๋ฅผ ๋ฌด์ํ๊ฑฐ๋ ์ฒ๋ฆฌํ ๋๋ ํญ์ ๊ทธ ์ด์ ๋ฅผ ๋ช ํํ ํ๊ณ , ํ์ํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ์ฌ ์ถํ ๋๋ฒ๊น ์ด ๊ฐ๋ฅํ๋๋ก ํด์ผ ํ๋ค.
.png)
.png)