μ°λ¦¬λ μμΈκ° μΌμ μνμ μΌλΆκ° μλ λΉμ μμ μΈ μνλΌλ κ²μ μκ³ μλ€.
μλ° νλ‘κ·Έλλ°μμ μμΈλ νλ‘κ·Έλ¨μ μ μμ μΈ νλ¦μ λ°©ν΄νλ μ΄λ²€νΈλ€.
λ€μν μ΄μ λ‘ μμΈκ° λ°μν μ μμ§λ§, μμΈμ μΌλ°μ μΈ μμΈμ λ€μκ³Ό κ°λ€.
- μ λ ₯ μμ μ€ μ¬μ©μμ μν΄ (μ«μ μ λ ₯μΈλ° λ¬Έμλ₯Ό μ λ ₯νμ λ)
- νλ‘κ·Έλλ¨Έμ μ€μ
- λ©λͺ¨λ¦¬ λΆμ‘±κ³Ό κ°μ 리μμ€ λΆμ‘±μΌλ‘ μΈν΄
Javaμλ λ κ°μ§ λ²μ£Όμ μμΈκ° μλ€.
- JVM μμΈ: JVMμμλ§ λ°μνλ μμΈ λ° μ€λ₯
μ: NullPointerException, ArrayIndexOutOfBoundsException, ClassCastException.- νλ‘κ·Έλ¨μ μμΈ: μ ν리μΌμ΄μ λλ API νλ‘κ·Έλλ¨Έκ° λͺ μμ μΌλ‘ λμ§λ μμΈ
μ: IllegalArgumentException, IllegalStateException.
Javaμμ μμΈλ java.lang.Throwable ν΄λμ€μ μλ€.
ν΄λμ€λ₯Ό μμνλ κ²μ λ κ°μ νμ ν΄λμ€ Exception λ° Errorμ΄λ©°, λ€λ₯Έ νμ ν΄λμ€μ μν΄ μΆκ°λ‘ μμλλ€.
Throwable ν΄λμ€μ κ³μΈ΅ ꡬ쑰λ λ€μκ³Ό κ°λ€.
μ£Όλ‘ Checked Exceptionκ³Ό Unchecked Exceptionμ λ κ°μ§ μ νμ΄ μμ§λ§ Oracleμ λ°λ₯΄λ©΄ μ€μ λ‘ μΈ κ°μ§ μ νμ μμΈκ° μλ€.
- Checked μμΈ
- Unchecked μμΈ
- Error
μ€λ₯λ νμΈλμ§ μμ μμΈ μ νμ΄κΈ°λ νλ€.
- λͺ μμ μΌλ‘ μμΈ μ²λ¦¬λ₯Ό ν΄μΌνλ€.
- μ»΄νμΌ μ νμΈλλ€.
- RuntimeException λ° Errorλ₯Ό μ μΈνκ³ Throwable ν΄λμ€μμ μ§μ μμλλ μμΈ ν΄λμ€
- μ: IOException, SQLException, ClassNotFound λ±
- μμΈ μ²λ¦¬λ₯Ό κ°μ νμ§ μλλ€.
- RuntimeException ν΄λμ€λ₯Ό μμνλ μμΈ
- λ°νμ μ€μ νμΈλλ€.
- μ: NullPointException, ArithmeticException, IndexOutOfBOundException λ±
- 볡ꡬν μ μλ μμΈ
- λ°νμμλ νμΈλλ€.
- μ: OutOfMemoryError, VirtualMachineError, StackOverflowError λ±
Checked Exception | UnChecked Exception | Error | |
---|---|---|---|
νμΈμμ | Compile | Runtime | Runtime |
λ°μ μμΈ | μΈλΆμ μν₯μΌλ‘ λ°μ | μ£Όλ‘ νλ‘κ·Έλλ¨Έμ μ€μμ μν΄μ λ°μ | μμ€ν μ λΉμ μμ μΈ μν©μμ λ°μ |
μ²λ¦¬ μ¬λΆ | λͺ μμ μ²λ¦¬ κ°μ | κ°μ νμ§ μμ | λΆκ°λ₯ |
μμΈ λ°μ μγγνΈλμμ μ²λ¦¬ | roll-back μ λ¨ | roll-back | roll-back |
λν μμΈ | RuntimeExceptionμ μμλ°μ§ μμΌλ©΄μ Exceptionμ μμλ°λ ν΄λμ€ IOException, SQLException, ClassNotFound λ± | RuntimeExceptionμ μμλ°λ λͺ¨λ ν΄λμ€ NullPointException, IndexOutOfBOundException, ArithmeticException λ± | OutOfMemoryError, StackOverflowError, VirtualMachineError λ± |