ํ๋ก๊ทธ๋จ์ ํญ์ ์ ์์ ์ผ๋ก๋ง ๋์ํ์ง ์๋๋ค.
ํ์ผ์ด ์์ ์๋ ์๊ณ , ์ ๋ ฅ ๊ฐ์ด ์๋ชป๋ ์๋ ์์ผ๋ฉฐ, ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋๊ธธ ์๋ ์๋ค.
์ด์ฒ๋ผ ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ํ๋ ์ค๋ฅ ์ํฉ์ ์์ธ(Exception)๋ผ๊ณ ํ๋ค.
Java๋ ์์ธ๋ฅผ ํด๋์ค ํํ๋ก ๊ด๋ฆฌํ๋ค.
1. ์์ธ์ ์ค๋ฅ์ ์ฐจ์ด
Java์ ์ต์์ ํด๋์ค๋ Throwable์ด๋ค.
Throwable
โโโ Error
โโโ Exception
1) Error
- ์์คํ ๋ ๋ฒจ ์ค๋ฅ
- ๋ณต๊ตฌ ๋ถ๊ฐ
- ๊ฐ๋ฐ์๊ฐ ์ฒ๋ฆฌํ์ง ์์
ex. OutOfMemoryError
2) Exception
- ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ ๊ฐ๋ฅ
- ๊ฐ๋ฐ์๊ฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์ฐ๋ฆฌ๊ฐ ๋ค๋ฃจ๋ ๋์
2. ์ฒดํฌ ์์ธ vs. ์ธ์ฒดํฌ ์์ธ
Exception์ ๋ ์ข ๋ฅ๋ก ๋๋๋ค.
1) ์ฒดํฌ ์์ธ(Checked Exception)
- ์ปดํ์ผ ๋จ๊ณ์์ ํ์ธ
- ๋ฐ๋์ ์ฒ๋ฆฌํด์ผ ํจ
ex.
- IOException
- SQLException
2) ์ธ์ฒดํฌ ์์ธ(Unchecked Exception)
- RuntimeException ํ์ ํด๋์ค
- ์ปดํ์ผ ์ ๊ฐ์ ํ์ง ์์
ex.
- NullPointerException
- ArrayIndexOutOfBoundsException
- IllegalArgumentException
3. try-catch๋ฌธ
์์ธ๋ฅผ ์ง์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.printIn("0์ผ๋ก ๋๋ ์ ์์");
}
๋์
- try ๋ธ๋ก ์คํ
- ์์ธ ๋ฐ์ ์ catch๋ก ์ด๋
- ํด๋น ํ์ ๊ณผ ์ผ์นํ๋ catch ์คํ
4. finally
ํญ์ ์คํ๋๋ ๋ธ๋ก
try {
// ์คํ
} catch (Exception e) {
//์์ธ ์ฒ๋ฆฌ
} finally {
//ํญ์ ์คํ
}
์ฃผ๋ก
- ์์ ํด์
- ํ์ผ ๋ซ๊ธฐ
- DB ์ฐ๊ฒฐ ์ข ๋ฃ
5. throws
์์ธ๋ฅผ ์ง์ ์ฒ๋ฆฌํ์ง ์๊ณ ํธ์ถํ ๊ณณ์ผ๋ก ๋๊ธด๋ค.
void readFile() throws IOException{
// ํ์ผ ์ฒ๋ฆฌ
}
์์ธ ์ฑ ์์ ์์ ํธ์ถ์์๊ฒ ์์ํ๋ค.
6. throw
์ง์ ์์ธ๋ฅผ ๋ฐ์์ํจ๋ค.
if (age < 0) {
throw new IllegalArgumentException("๋์ด๋ ์์ ๋ถ๊ฐ");
}
7. ์ฌ์ฉ์ ์ ์ ์์ธ
ํ์์ ๋ฐ๋ผ ์ง์ ์์ธ ํด๋์ค๋ฅผ ๋ง๋ค ์ ์๋ค.
class InvalidAgeException extends Exception {
public InvalidAgeException(String message) {
super(message);
}
}
์ฌ์ฉ
throw new InvalidAgeException("์๋ชป๋ ๋์ด");
8. try-with-resources
Java 7๋ถํฐ ๋์ ๋ ์์ ์๋ ํด์ ๋ฌธ๋ฒ
try (BufferedReader br = new BufferedReader(new FileReader("a.txt"))) {
// ์ฌ์ฉ
}
AutoCloseable ๊ตฌํ ๊ฐ์ฒด๋ ์๋์ผ๋ก close() ํธ์ถ๋๋ค.
9. ์์ธ ์ฒ๋ฆฌ ์ ๋ต
์ค๋ฌด์์ ์ค์ํ ๊ฒ์ "์ด๋์ ์ฒ๋ฆฌํ ๊ฒ์ธ๊ฐ"์ด๋ค.
1) ๋ฎ์ ๋ ๋ฒจ
- ์์ธ๋ฅผ throws๋ก ๋์ง
2) ์์ ๋ ๋ฒจ
- ๊ณตํต ์ฒ๋ฆฌ(๋ก๊น , ์ฌ์ฉ์ ๋ฉ์ธ์ง)
3) RuntimeException ํ์ฉ
- ๋น์ฆ๋์ค ๋ก์ง ์์ธ๋ ์ธ์ฒดํฌ ์์ธ๋ก ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ๋ง์
'Back-End > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 14. ์๋ฐ ์ ์ถ๋ ฅ(Java I/O) (0) | 2026.02.12 |
|---|---|
| 12. ๋ด๋ถ ํด๋์ค, ๋๋ค์, ์คํธ๋ฆผ (0) | 2026.02.12 |
| 11. ์ปฌ๋ ์ ํ๋ ์์ํฌ(Collection Framework) (0) | 2026.02.12 |
| 10. ๊ธฐ๋ณธ ํด๋์ค(Core Class) (0) | 2026.02.12 |
| 09. ์ธํฐํ์ด์ค(Interface) (0) | 2026.02.11 |