μλ¬μ μμΈ
μ¬κ°λμ λ°λ₯Έ λΆλ₯
β’
Error
β¦
λ©λͺ¨λ¦¬ λΆμ‘±, stack overflowμ κ°μ΄ λ°μνλ©΄ 볡ꡬν μ μλ μν©
β¦
νλ‘κ·Έλ¨μ λΉμ μμ μ’
λ£λ₯Ό λ§μ μ μμ β λλ²κΉ
νμ
β’
Exception
β¦
μ½μΌλ €λ νμΌμ΄ μκ±°λ λ€νΈμν¬ μ°κ²°μ λ¨μ λ± μμ΅μ΄ κ°λ₯ν μν©
β¦
νλ‘κ·Έλ¨ μ½λμ μν΄ μμ΅λ μ μλ μν©
β’
μμΈ μ²λ¦¬
β¦
μμΈ λ°μ μ νλ‘κ·Έλ¨μ λΉμ μ μ’
λ£λ₯Ό λ§κ³ μ μμ μΈ μ€ν μνλ₯Ό μ μ§νλ κ²
μμΈ ν΄λμ€μ κ³μΈ΅
checked exception
β’
μμΈμ λν λμ² μ½λκ° μμΌλ©΄ μ»΄νμΌμ΄ μ§νλμ§ μμ
β’
νμμ μΌλ‘ μμΈμ²λ¦¬ μν
unchecked exception
β’
μμΈμ λν λμ² μ½λκ° μλλΌλ μ»΄νμΌμ μ§ν
β’
κ°λ°μκ° μμΈ λ°μ κ°λ₯ν μν©μ κ³ λ €ν΄μΌ ν¨
try ~ catch ꡬ문
try ~ catch λ¬Έμμμ νλ¦
β’
try λΈλ‘μμ μμΈκ° λ°μνλ©΄
β¦
JVMμ΄ ν΄λΉ Exception ν΄λμ€μ κ°μ²΄λ₯Ό μμ± ν λμ§(throw)
(throw new XXException()
β¦
λμ Έμ§ exceptionμ μ²λ¦¬ν μ μλ catch λΈλ‘μμ λ°μ ν μ²λ¦¬
μ λΉν catch λΈλ‘μ λ§λμ§ λͺ»νλ©΄ μμΈμ²λ¦¬λ μ€ν¨
β’
tryλΈλ‘μμ μμΈκ° λ°μνμ§ μμ κ²½μ°
β¦
catch λ¬Έμ κ±°μΉμ§ μκ³ try-catch λΈλ‘μ λ€μ νλ¦ λ¬Έμ₯μ μ€ν
λ€μ€ exception handling
β’
try λΈλ‘μμ μ¬λ¬ μ’
λ₯μ μμΈκ° λ°μν κ²½μ°
β¦
νλμ try λΈλ‘μ μ¬λ¬ κ°μ catch λΈλ‘ μΆκ° κ°λ₯
β’
λ€μ€ catch λ¬Έμ₯ μμ± μ μμ μ μμ¬ν
- JVMμ΄ λμ§ μμΈλ catch λ¬Έμ₯μ μ°Ύμ λ λ€νμ±μ΄ μ μ©λ¨
- μμ νμ
μ μμΈκ° λ¨Όμ μ μΈλλ κ²½μ° λ€μ λ±μ₯νλ catch λΈλ‘μ λμν κΈ°νκ° X
- μμ κ΄κ³κ° μλ κ²½μ°λ 무κ΄,
γ΄ μμ κ΄κ³μμλ μμ λ²μ(μμ)μμ ν° λ²μ(μ‘°μ) μμλ‘ μ μ
try ~ catch ~ finally
finally
β’
μμΈ λ°μ μ¬λΆμ μκ΄ μμ΄ μΈμ λ μ€ν
β’
μ€κ°μ returnμ λ§λλ κ²½μ°λ finally λΈλ‘μ λ¨Όμ μν ν λ¦¬ν΄ μ€ν
β’
μμμ 리μ λͺ©μ μΌλ‘ μμ£Ό μ¬μ©λ¨ (μμ λ°λ©)
try- with- resources
JDK 1.7 μ΄μμμμ 리μμ€μ μλ close μ²λ¦¬
β’
try μ μΈλ¬Έμ μ μΈλ κ°μ²΄λ€μ λν΄ μλμΌλ‘ closeλ₯Ό νΈμΆν΄μ€λ€. (finally μν )
β¦
λ¨, ν΄λΉ κ°μ²΄λ€μ΄ AutoCloseable interfaceλ₯Ό ꡬνν΄μΌ νλ€.
(κ°μ’
I/O μ€νΈλ¦Ό, socket, connection,,,)
β¦
ν΄λΉ κ°μ²΄λ tryλΈλ‘μμ λ€μ ν λΉλ μ μλ€.
μ¬μ©μ μ μ μμΈ
β’
APIμ μ μλ exception μ΄μΈμ νμμ λ°λΌ μ¬μ©μ μ μ μμΈ ν΄λμ€ μμ±
β’
λλΆλΆ Exception λλ Runtime Exception ν΄λμ€λ₯Ό μμλ°μ μμ±
β¦
checked exception νμ© : λͺ
μμ μμΈμ²λ¦¬ or throws νμ
γ΄ μ½λλ 볡μ‘ν΄μ§μ§λ§ μ²λ¦¬ λλ½ λ± μ€λ₯ λ°μ κ°λ₯μ±μ μ€μ΄λ¬
β¦
runtime exception νμ© : 묡μμ μμΈμ²λ¦¬ κ°λ₯
γ΄ μ½λκ° κ°κ²°ν΄μ§μ§λ§ μμΈ μ²λ¦¬ λλ½ κ°λ₯μ± λ°μ
β’
μ¬μ©μ μ μ μμΈμ²λ¦¬μ μ₯μ
- κ°μ²΄μ νμ© : νμν μΆκ°μ 보, κΈ°λ₯ νμ© κ°λ₯
- μ½λμ μ¬μ¬μ© : λμΌν μν©μμ μμΈ κ°μ²΄ μ¬μ¬μ© κ°λ₯
- throws λ©μ»€λμ¦μ μ΄μ© - μ€κ° λ¨κ³μμ return λΆνμ