- μ€λ₯(Error)π₯ vs μμΈ(Exception)π¨
-------------------------------------------------------
π» μ€λ₯?
- μΌλ°μ μΌλ‘ νλ³΅μ΄ λΆκ°λ₯ν λ¬Έμ
- μ½λμ λ¬Έμ λ‘ λ°μνλ κ²½μ°λ μμ§λ§, μΌλ¨ λ°μνλ κ²½μ° μΌλ°μ μΌλ‘ νλ³΅μ΄ λΆκ°λ₯
-------------------------------------------------------
π» μμΈ?
- μΌλ°μ μΌλ‘ νλ³΅μ΄ κ°λ₯ν λ¬Έμ
- νμ€μ μΌλ‘ μ½λ λ 벨μμ ν μ μλ λ¬Έμ μν©μ λν λμμ βμμΈ μ²λ¦¬β
-------------------------------------------------------
- μμΈ(Exception)μ μ’
λ₯π¨
-------------------------------------------------------
π» μ½λ μ€ν κ΄μ ποΈμμ μμΈμ μ’
λ₯
---------------------------------
- μ»΄νμΌ μλ¬(μμΈ)π
- .java νμΌμ .class νμΌλ‘ μ»΄νμΌν λ λ°μνλ μλ¬
- μλ° νλ‘κ·Έλλ° μΈμ΄μ κ·μΉμ μ§ν€μ§ μμκΈ° λλ¬Έμ λ°μ
- λ°νμ μλ¬(μμΈ)π₯
- μμΈμ²λ¦¬ κ΄μ βΆοΈμμ μμΈμ μ’
λ₯
-------------------------------------------------------
π» μμΈμ²λ¦¬ κ΄μ βΆοΈμμ μμΈμ μ’
λ₯
---------------------------------
- νμΈλ μμΈβ
(Checked Exception)
- - μ»΄νμΌ μμ μ νμΈνλ μμΈμ
λλ€.
- λ°λμ μμΈ μ²λ¦¬λ₯Ό ν΄μ€μΌ νλ μμΈμ
λλ€.
- λ―ΈνμΈλ μμΈπ« (Unchecked Exception)
- λ°νμ μμ μ νμΈλλ μμΈμ
λλ€.
- μμΈ μ²λ¦¬κ° λ°λμ νμνμ§ μμ μμΈμ
λλ€.
-------------------------------------------------------
- μμΈ λ°μκ³Ό try-catch, finally λ¬Έ
-------------------------------------------------------
π» try
- μμΈκ° λ°μν κ°λ₯μ±μ΄ μλ μ½λλ₯Ό μΌλ¨ μ€ν!
---------------------------------
π» catch
- μμΈκ° λ°μνμ λ μ€νν μ½λ
---------------------------------
π» finally
- μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ νμ μ€νλλ μ½λ
-------------------------------------------------------
| throws | throw |
|---|
| λ©μλ μ΄λ¦ λ€μ λΆμ΄ μ΄ λ©μλκ° μ΄λ ν μμΈμ¬νμ λμ§ μ μλμ§ μλ €μ£Όλ μμ½μ΄μ
λλ€. | λ©μλ μμμ, μ€μ λ‘ μμΈ κ°μ²΄λ₯Ό λμ§ λ μ¬μ©νλ μμ½μ΄μ
λλ€. |
| μ¬λ¬ μ’
λ₯μ μμΈμ¬νμ μ μ μ μμ΅λλ€. | μ€μ λ‘ λμ§λ μμΈ κ°μ²΄ νλμ κ°μ΄ μ¨μΌ ν©λλ€. |
| μΌλ° λ©μλμ return ν€μλμ²λΌ throw μλμ ꡬ문λ€μ μ€νλμ§ μκ³ , throwλ¬Έκ³Ό ν¨κ» λ©μλκ° μ’
λ£λ©λλ€. |
- μμΈ ν΄λμ€ κ΅¬μ‘° μ΄ν΄νκΈ°
-------------------------------------------------------
π» μλ°μ Throwable Class
- μμμ λͺ¨λ κ°μ²΄μ μνμΈ `Object` ν΄λμ€μμ μμν©λλ€.
- μκΉ μ μν βλ¬Έμ μν©βμ λ»νλ `Throwable` ν΄λμ€κ° Object ν΄λμ€λ₯Ό μμν©λλ€.
- `Throwable` ν΄λμ€μ μμμΌλ‘ μμλ°°μ΄ μλ¬(`Error`)μ μμΈ(`Exception`) ν΄λμ€κ° μμ΅λλ€.
- μλ¬(`Error`) ν΄λμ€μ μμΈ(`Exception`) ν΄λμ€λ κ°κ° `IOError` ν΄λμ€, `RuntimeException` ν΄λμ€μ κ°μ΄ ꡬλΆνμ¬ μ²λ¦¬λ©λλ€.
-------------------------------------------------------

