λ°μν
μμΈμ²λ¦¬
μ€λ₯(Error) vs μμΈ(Exception)
κ°μ₯ μ€μν κΈ°μ€μ μΌλ°μ μΌλ‘ ν볡 κ°λ₯ μ¬λΆ
- μ€λ₯(Error)
- μΌλ°μ μΌλ‘ νλ³΅μ΄ λΆκ°λ₯ν λ¬Έμ
- μμ€ν λ 벨μμ, λλ μ£Όλ‘ νκ²½μ μΈ μ΄μ λ‘ λ°μ
- μλ¬κ° λ°μν κ²½μ° μ΄λ ν μλ¬λ‘ νλ‘κ·Έλ¨μ΄ μ’ λ£λμλμ§λ₯Ό νμΈνκ³ λμ
- μμΈ(Exception)
- μΌλ°μ μΌλ‘ νλ³΅μ΄ κ°λ₯ν λ¬Έμ
- νλ³΅μ΄ κ°λ₯νλ€λ μ μ λ
κ·Έ μμΈκ° λ°μν μ μλ€λ κ²μ μΈμ§νκ³ , λμνμ κ²
- μ½λλ 벨μμ ν μ μλ λ¬Έμ μν©μ λν λμμ
μμ μ²λ¦¬
μ μν¨
μμΈμ μ’ λ₯
- μ½λμ€ν κ΄μ μμ μμΈμ μ’
λ₯
- μ»΄νμΌ μλ¬(μμΈ)
- .java -> .class λ‘ μ»΄νμΌν λ λ°μνλ μλ¬
- λλΆλΆ μλ° νλ‘κ·Έλλ° μΈμ΄μ κ·μΉμ μ§ν€μ§ μμκΈ° λλ¬Έμ λ°μ
- μ) μμ§ μμ ν΄λμ€λ₯Ό νΈμΆ, μ κ·Όμ΄ λΆκ°λ₯ν νλ‘νΌν°λ λ©μλμ μ κ·Όνλ κ²½μ°
- ν΄κ²° λ°©λ²: λ¬Έλ²μ λ§κ² λ€μ μμ±νλ κ²
- λ°νμ μλ¬(μμΈ)
- μ£Όλ‘ λ€λ£¨κ² λ μλ¬(μμΈ)
- λ¬Έλ²μ μΈ μ€λ₯λ μλλΌ, μ»΄νμΌμ μ λμ§λ§, νλ‘κ·Έλ¨μ΄ μ€νλμ€ λ§λ₯λ¨λ¦¬κ² λλ μμΈ
- μ»΄νμΌ μλ¬(μμΈ)
- μμΈ μ²λ¦¬
- νμΈλ μμΈ(Checked Exception)
- μ»΄νμΌ μμ μ νμΈνλ μλ¬
- λ°λμ μμΈ μ²λ¦¬ν΄μ€μΌ ν¨
- νμΈλ μμΈ(Checked Exception)
β οΈ μ»΄νμΌ μλ¬μ ν·κ°λ¦¬λ©΄ μλ¨
μ΄λ―Έ ν΄λΉ μμΈλ₯Ό μ μν΄λμκΈ° λλ¬Έμ μ»΄νμΌνλ λμ μμΈμ²λ¦¬λ₯Ό νλμ§ νμΈν μ μλ μμΈ
μ¦, Checked Exceptionμ λν μμΈμ²λ¦¬λ₯Ό νμ§ μμΌλ©΄ μ»΄νμΌ μλ¬κ° λ°μν¨
- λ―ΈνμΈλ μμΈ(Unchecked Exception)
- λ°νμ μμ μ νμΈλλ μλ¬
- μμΈ μ²λ¦¬κ° λ°λμ νμνμ§ μμ μμΈ
μμΈ λ°μκ³Ό try-catch, finally λ¬Έ
throws | throw |
---|---|
λ©μλ μ΄λ¦ λ€μ λΆμ΄ μ΄ λ©μλκ° μ΄λ ν μμΈ μ¬νμ λμ§ μ μλμ§ μλ €μ£Όλ μμ½μ΄ | λ©μλ μμμ, μ€μ λ‘ μμΈ κ°μ²΄λ₯Ό λμ§ λ μ¬μ©νλ μμ½μ΄ |
μ¬λ¬ μ’ λ₯μ μμΈμ¬νμ μ μ μ μμ | μ€μ λ‘ λμ§λ μμΈ κ°μ²΄ νλμ κ°μ΄ μ¨μΌ ν¨ |
μΌλ° λ©μλμ return ν€μλμ²λΌ throw μλμ ꡬ문λ€μ μ€νλμ§ μκ³ , throwλ¬Έκ³Ό ν¨κ» λ©μλκ° μ’ λ£λ¨ |
μλ°μ Throwable Class
- μμμ λͺ¨λ κ°μ²΄μ μνμΈ
Object
ν΄λμ€μμ μμ - μκΉ μ μν "λ¬Έμ μν©"μ λ»νλ
Throwable
ν΄λμ€κ° Object ν΄λμ€λ₯Ό μμ Throwable
ν΄λμ€μ μμμΌλ‘ μμλ°°μ΄ μλ¬(Exception
)μ μμΈ(Exception
)ν΄λμ€κ° μμ- μλ¬(
Error
) ν΄λμ€μ μμΈ(Exception
) ν΄λμ€λ κ°κ°IOError
ν΄λμ€,RuntimeException
ν΄λμ€μ κ°μ΄ ꡬλΆνμ¬ μ²λ¦¬λ¨
Chained Exception, μ€μ μμΈ μ²λ¦¬νλ λ°©λ²
- μ°κ²°λ μμΈ(Chained Exception)
- μμΈλ λ€λ₯Έ μμΈλ₯Ό μ λ°ν μ μμ
- μμΈ μμΈλ₯Ό μλ‘μ΄ μμΈμ λ±λ‘ν ν λ€μ μλ‘μ΄ μμΈλ₯Ό λ°μμν€λλ°, μ΄λ₯Ό μμΈ μ°κ²°μ΄λΌκ³ ν¨
μ μμΈλ₯Ό μ°κ²°νμ£ ?
-
-
- μμΈλ₯Ό μ°κ²°νλ μ΄μ λ μ¬λ¬ κ°μ§ μμΈλ₯Ό νλμ ν° λΆλ₯μ μμΈλ‘ λ¬Άμ¬μ λ€λ£¨κΈ° μν¨
- checked exceptionμ unchecked exceptionμΌλ‘ ν¬μ₯(wrapping)νλλ° μ μ©νκ² μ¬μ©λκΈ°λ ν¨
- μμΈ μμΈλ₯Ό λ€λ£¨κΈ° μν λ©μλ
initCause()
- μ§μ ν μμΈλ₯Ό μμΈ μμΈλ‘ λ±λ‘νλ λ©μλ
getCause()
- μμΈ μμΈλ₯Ό λ°ννλ λ©μλ
-
- μμΈ λ³΅κ΅¬νκΈ°
- μ€μ λ‘ try-catchλ‘ μμΈλ₯Ό μ²λ¦¬νκ³ νλ‘κ·Έλ¨μ μ μ μνλ‘ λ³΅κ΅¬νλ λ°©λ²
- κ°μ₯ κΈ°λ³Έμ μΈ λ°©μμ΄μ§λ§, νμ€μ μΌλ‘ λ³΅κ΅¬κ° κ°λ₯ν μν©μ΄ μλ κ²½μ°κ° λ§κ±°λ μ΅μνμ λμλ§ κ°λ₯ν κ²½μ°κ° λ§κ±°λ μ΅μνμ λμλ§ κ°λ₯ν κ²½μ°κ° λ§κΈ° λλ¬Έμ μμ£Ό μ¬μ©λμ§λ μμ
- μμΈ μ²λ¦¬ ννΌνκΈ°
- μ΄λ κ² μ²λ¦¬νλ©΄, someMethod()μμ λ°μν μλ¬κ° someIrresponsibleMethod()μ throwsλ₯Ό ν΅ν΄μ κ·Έλλ‘ λ€μ νλ¬λκ°κ² λ¨. λ¬Όλ‘ κ°μ κ°μ²΄λ΄μμ μ΄λ° μΌμ νμ§λ μμ. λ¨μν μμΈμ²λ¦¬ ννΌ μ½λ
- κ΄μ¬μ¬λ₯Ό λΆλ¦¬ν΄μ ν λ μ΄μ΄μμ μ²λ¦¬νκΈ° μν΄μ μ΄λ κ² μλ¬λ₯Ό ννΌν΄μ κ·Έλλ‘ νλ¬λ³΄λ΄λ κ²½μ°λ μμ
public void someMethod() throws Exception {...}
public void someIrresponsibleMethod() throws Exception { this.someMethod(); }
- μμΈ μ ννκΈ°
- μμΈμ²λ¦¬ ννΌνκΈ°μ λ°©λ²κ³Ό λΉμ·νμ§λ§, μ‘°κΈ λ μ μ ν μμΈλ₯Ό λμ Έμ£Όλ κ²½μ°
- 보ν΅μ μμΈμ²λ¦¬μ λ μ κ²½μ°κ³ μΆμ κ²½μ°λ, μ€νλ € RuntimeException μ²λΌ μΌκ΄μ μΌλ‘ μ²λ¦¬νκΈ° νΈν μμΈλ‘ λ°κΏμ λμ§κ³ μΆμ κ²½μ° μ¬μ©ν¨
728x90
λ°μν
'λ΄μΌλ°°μμΊ ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JAVA 5μ£Όμ°¨: μ°λ λ (2) | 2023.10.23 |
---|---|
JAVA 4μ£Όμ°¨: μ λ€λ¦ (0) | 2023.10.23 |
JAVA 3μ£Όμ°¨: ν΄λμ€, μμ, μΈν°νμ΄μ€ (1) | 2023.10.18 |
JAVA 2μ£Όμ°¨: μ°μ°μ, 쑰건문, λ°λ³΅λ¬Έ, λ°°μ΄, 컬λ μ (0) | 2023.10.17 |
JAVA 1μ£Όμ°¨: JVM, λ³μ (0) | 2023.10.17 |