Java

[Java] μžλ°” μ˜ˆμ™Έ 클래슀의 계측 ꡬ쑰와 Exception, Error, RuntimeException, IOException 의 차이점을 μ•Œμ•„λ³΄μž

joheamin 2025. 3. 28. 09:48

 

πŸ”·μžλ°” μ—λŸ¬

μžλ°” μ—λŸ¬λŠ” μžλ°” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” 도쀑에 λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό μ˜λ―Έν•œλ‹€.

λ‹€μ–‘ν•œ μƒν™©μ—μ„œ μ—¬λŸ¬ κ°€μ§€μ˜ 이유둜 λ°œμƒν•˜λ©° μ—λŸ¬μ˜ μ’…λ₯˜ λ˜ν•œ λ‹€μ–‘ν•˜λ‹€.

 

 

πŸ”· μ˜ˆμ™Έμ™€ μ—λŸ¬ 

μžλ°”μ—μ„œλŠ” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 도쀑 λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό μ˜ˆμ™Έμ™€ μ—λŸ¬λ‘œ λ‚˜λˆ„μ–΄ κ΅¬λΆ„ν•œλ‹€.

두 개의 차이첨을 μ•Œμ•„λ³΄μž 

 

 

❓ μ—λŸ¬(Error)

ν”„λ‘œκ·Έλž˜λ¨Έκ°€ λŒ€μ‘ν•  수 μ—†λŠ” μ‹¬κ°ν•œ μ—λŸ¬

컴퓨터 ν”„λ‘œκ·Έλž¨ 자체의 문제둜 μΈν•˜μ—¬ μ‘μš© ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 였λ₯˜κ°€ λ°œμƒν•˜λ©° 
ν”„λ‘œκ·Έλž¨ μ½”λ“œλ‘œ 해결될 수 μ—†λŠ” μ‹¬κ°ν•œ 였λ₯˜λ₯Ό μ˜λ―Έν•œλ‹€.

JVMμ—μ„œ λ¬Έμ œκ°€ λ°œμƒλ˜λ©° 주둜 JVM 버그 λ©”λͺ¨λ¦¬ λΆ€μ‘±, μŠ€νƒ μ˜€λ²„ν”Œλ‘œμš° 등이 μžˆλ‹€.

 

β“μ˜ˆμ™Έ(Exception)

 

ν”„λ‘œκ·Έλž˜λ¨Έκ°€ λŒ€μ‘ κ°€λŠ₯ν•˜λ©° μœ μ—°ν•˜κ²Œ μ²˜λ¦¬ν•  수 μžˆλŠ” μ—λŸ¬

 μ˜ˆμ™ΈλŠ” ν”„λ‘œκ·Έλž˜λ¨Έμ˜ 잘λͺ»λœ μ½”λ”©μœΌλ‘œ 인해 λ°œμƒν•˜λŠ” ν”„λ‘œκ·Έλž¨ 였λ₯˜μ΄λ©°
ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ λ°œμƒν•˜λŠ” μ˜ˆμ™Έμ— λŒ€ν•΄μ„œ try-catchλ₯Ό μ΄μš©ν•΄ 적절히 처리λ₯Ό ν•  수 μžˆλ‹€.

λŒ€ν‘œμ μœΌλ‘œ λ°œμƒν•˜λŠ” μ˜ˆμ™ΈλŠ” IOException κ³Ό RuntimeException이 μžˆλ‹€.

 

 

 


πŸ”² μ˜ˆμ™Έν΄λž˜μŠ€μ˜ 계측 ꡬ쑰

 

μžλ°”μ—μ„œλŠ” 였λ₯˜κ°€ μ˜ˆμ™Έ 클래슀의 계측 ꡬ쑰둜 λ‚˜λ‰˜μ–΄ κ΄€λ¦¬λœλ‹€.

 

β—Ύ Object : μžλ°”μ—μ„œ λͺ¨λ“  클래슀의 μ΅œμƒμœ„ λΆ€λͺ¨ 클래슀

β—Ύ Throwable : μžλ°”μ—μ„œ μ˜ˆμ™Έμ™€ 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ΅œμƒμœ„ 클래슀

β—Ύ Exception : μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ μ΅œμƒμœ„ 클래슀

β—Ύ Error : JVMμ—μ„œ λ°œμƒν•˜λŠ” μ‹¬κ°ν•œ 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 클래슀

β—Ύ IOException : μž…μΆœλ ₯ μž‘μ—… 쀑 λ°œμƒν•˜λŠ” μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ μ˜ˆμ™Έ 클래슀

β—Ύ RuntimeException : μ‹€ν–‰ 쀑에 λ°œμƒν•˜λŠ” μ˜ˆμ™Έλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 클래슀

β—Ύ OutOfMemoryError : JVM이 λ©”λͺ¨λ¦¬λ₯Ό 더 이상 ν• λ‹Ήν•  수 없을 λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬

β—Ύ StackOverflowError : JVM의 μŠ€νƒ λ©”λͺ¨λ¦¬κ°€ 초과될 λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬

 


 

πŸ”ΉIOException 와 RuntimeException의 차이점

 

βœ”οΈ IOException

IOException은 Checked Exception 으둜 λ°˜λ“œμ‹œ μ˜ˆμ™Έ 처리λ₯Ό ν•˜λ„λ‘ ν•΄μ•Όν•œλ‹€. 
μž…μΆœλ ₯ μ—λŸ¬ μ‹œ 컴파일 λ‹¨κ³„μ—μ„œ λ°œμƒν•˜λ©° 

주둜 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” νŒŒμΌμ„ μ½μœΌλ €κ³ ν•  λ•Œ λ°œμƒν•œλ‹€. 

 

      

βœ”οΈ RuntiemException

 RuntimeException 은 UnCheck Exception 으둜 μ˜ˆμ™Έ μ²˜λ¦¬κ°€ ν•„μˆ˜λŠ” μ•„λ‹ˆλ‹€.
주둜 잘λͺ»λœ μž…λ ₯μ΄λ‚˜ 논리적인 μ—λŸ¬λ‘œ λ°œμƒν•˜λ©° μ‹€ν–‰ λ‹¨κ³„μ—μ„œ λ°œμƒν•œλ‹€.

잘λͺ»λœ 인자λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜ λ°°μ—΄μ˜ λ²”μœ„λ₯Ό μ΄ˆκ³Όν•˜λŠ” λ“±μ˜ 문제둜 λ°œμƒν•œλ‹€.