Exception

Java μ—μ„œλŠ” 기본적으둜 2κ°€μ§€μ˜ μ—λŸ¬ μœ ν˜•μ΄ μžˆλ‹€.

`Error` 와 `Exception` 의 차이

Error와 Exception은 κ°™λ‹€κ³  생각할 μˆ˜λ„ μžˆμ§€λ§Œ, 사싀 큰 차이가 μžˆλ‹€.

μ—λŸ¬λŠ” λ©”λͺ¨λ¦¬ λΆ€μ‘±μ΄λ‚˜ μŠ€νƒμ˜€λ²„ν”Œλ‘œμš°μ™€ 같이 λ°œμƒν•˜λ©΄ 볡ꡬ할 수 μ—†λŠ” μ‹¬κ°ν•œ 였λ₯˜μ΄κ³ ,
μ˜ˆμ™ΈλŠ” λ°œμƒν•˜λ”λΌλ„ μˆ˜μŠ΅ν•  수 μžˆλŠ” 비ꡐ적 덜 μ‹¬κ°ν•œ 였λ₯˜μ΄λ‹€.

Checked Exception

Checked Exception λŠ” μ™ΈλΆ€ ν™˜κ²½μ— μ˜ν•΄ 미리 μ˜ˆμƒ λ˜λŠ” 였λ₯˜μ΄λ‹€.

예λ₯Ό λ“€λ©΄ IOException ClassNotFoundException λ“±κ³Ό 같이 λ°˜λ“œμ‹œ μ˜ˆμ™Έμ²˜λ¦¬κ°€ ν•„μš”ν•˜λ‹€.

IOException

SQLException

AssertionError 1.4

선언이 μ‹€νŒ¨ν•œκ²ƒμ„ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄μ„œ λ°œμƒλœλ‹€.

Unchecked Exception (Runtime Exception)

Unchecked Exception λŠ” ν”„λ‘œκ·Έλž¨ λ‘œμ§μƒμ˜ 문제둜 μΌμ–΄λ‚˜λŠ” λ‘œμ§μƒμ˜ 였λ₯˜λ‘œμ¨ 미리 μ˜ˆμƒν•  수 μ—†λ‹€.

λŒ€ν‘œμ μœΌλ‘œ RuntimeException κ³Ό 같이 ν”„λ‘œκ·Έλž¨ 싀행쀑에 μΌμ–΄λ‚˜λ©° λ°˜λ“œμ‹œ μ˜ˆμ™Έμ²˜λ¦¬λ₯Ό ν•„μš”λ‘œ ν•˜μ§€ μ•ŠλŠ”λ‹€.

NullPointerException

IllegalArgumentException 1.0

λΆ€μ •ν•œ 인수 λ˜λŠ” λΆ€μ μ ˆν•œ 인수λ₯Ό λ©”μ„œλ“œμ— 겆내쀀것을 λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ λ°œμƒλœλ‹€.

  • IllegalArgumentException ()
    • 상세 메세지λ₯Ό 가지지 μ•ŠλŠ” IllegalArgumentException을 κ΅¬μΆ•ν•©λ‹ˆλ‹€.
  • IllegalArgumentException (String s)
    • μ§€μ •λœ 상세 메세지λ₯Ό κ°€μ§€λŠ” IllegalArgumentException을 κ΅¬μΆ•ν•©λ‹ˆλ‹€.
  • IllegalArgumentException (String message, Throwable cause) 1.5
    • μ§€μ •λœ 상세 메세지 및 원인을 μ‚¬μš©ν•΄ μƒˆλ‘œμš΄ μ˜ˆμ™Έλ₯Ό κ΅¬μΆ•ν•©λ‹ˆλ‹€.
  • IllegalArgumentException (Throwable cause) 1.5
    • μ§€μ •λœ 원인 및 상세 메세지λ₯Ό μ‚¬μš©ν•΄ μƒˆλ‘œμš΄ μ˜ˆμ™Έλ₯Ό κ΅¬μΆ•ν•©λ‹ˆλ‹€.

IndexOutOfBoundException

SystemException

μ˜ˆμ™Έμ²˜λ¦¬ν•œ κ°μ²΄λŠ” μž‘μ—…μ΄ λλ‚œν›„ λͺ¨λ“œ GC 의 λŒ€μƒμ΄ λœλ‹€.

Checked Exception Unchecked Exception
μ²˜λ¦¬μ—¬λΆ€ λ°˜λ“œμ‹œ μ˜ˆμ™Έμ²˜λ¦¬κ°€ ν•„μš” λͺ…μ‹œμ μΈ 처리λ₯Ό κ°•μ œν•˜μ§€ μ•ŠμŒ
ν™•μΈμ‹œμ  컴파일 단계 싀행단계
μ˜ˆμ™Έ λ°œμƒ μ‹œ
νŠΈλžœμž­μ…˜ μ—¬λΆ€
roll-back ν•˜μ§€ μ•ŠμŒ roll-back 처리
λŒ€ν‘œμ μΈ μ˜ˆμ™Έ Exception 의 상속을 λ°›λŠ” ν•˜μœ„ 클래슀 쀑
Runtime Exception을 μ œμ™Έν•œ λͺ¨λ“  μ˜ˆμ™Έ
Runtime Exception 의 ν•˜μœ„ μ˜ˆμ™Έ 클래슀