24.08.06

μœ€μ§€ν˜„Β·2024λ…„ 8μ›” 6일

TIL

λͺ©λ‘ 보기
34/75
  • 였λ₯˜(Error)πŸ”₯ vs μ˜ˆμ™Έ(Exception)🚨
-------------------------------------------------------
πŸ”» 였λ₯˜?
   - 일반적으둜 회볡이 λΆˆκ°€λŠ₯ν•œ 문제
   - μ½”λ“œμ˜ 문제둜 λ°œμƒν•˜λŠ” κ²½μš°λ„ μžˆμ§€λ§Œ, 일단 λ°œμƒν•˜λŠ” 경우 일반적으둜 회볡이 λΆˆκ°€λŠ₯
-------------------------------------------------------
πŸ”» μ˜ˆμ™Έ?
   - 일반적으둜 회볡이 κ°€λŠ₯ν•œ 문제
   - ν˜„μ‹€μ μœΌλ‘œ μ½”λ“œ λ ˆλ²¨μ—μ„œ ν•  수 μžˆλŠ” 문제 상황에 λŒ€ν•œ λŒ€μ‘μ€ β€œμ˜ˆμ™Έ μ²˜λ¦¬β€
-------------------------------------------------------
  • μ˜ˆμ™Έ(Exception)의 μ’…λ₯˜πŸš¨
-------------------------------------------------------
πŸ”» μ½”λ“œ μ‹€ν–‰ κ΄€μ πŸ‘οΈμ—μ„œ μ˜ˆμ™Έμ˜ μ’…λ₯˜
   ---------------------------------
      - 컴파일 μ—λŸ¬(μ˜ˆμ™Έ)πŸ“‚
      		- .java νŒŒμΌμ„ .class 파일둜 μ»΄νŒŒμΌν•  λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬
        	- μžλ°” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ κ·œμΉ™μ„ μ§€ν‚€μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λ°œμƒ
      - λŸ°νƒ€μž„ μ—λŸ¬(μ˜ˆμ™Έ)πŸ”₯
            - μ˜ˆμ™Έμ²˜λ¦¬ κ΄€μ β–ΆοΈμ—μ„œ μ˜ˆμ™Έμ˜ μ’…λ₯˜
-------------------------------------------------------
πŸ”» μ˜ˆμ™Έμ²˜λ¦¬ κ΄€μ β–ΆοΈμ—μ„œ μ˜ˆμ™Έμ˜ μ’…λ₯˜
   ---------------------------------
      - ν™•μΈλœ μ˜ˆμ™Έβœ… (Checked Exception)
      		- - 컴파일 μ‹œμ μ— ν™•μΈν•˜λŠ” μ˜ˆμ™Έμž…λ‹ˆλ‹€.
			- λ°˜λ“œμ‹œ μ˜ˆμ™Έ 처리λ₯Ό ν•΄μ€˜μ•Ό ν•˜λŠ” μ˜ˆμ™Έμž…λ‹ˆλ‹€.
      - λ―Έν™•μΈλœ μ˜ˆμ™ΈπŸš« (Unchecked Exception)
            - λŸ°νƒ€μž„ μ‹œμ μ— ν™•μΈλ˜λŠ” μ˜ˆμ™Έμž…λ‹ˆλ‹€.
			- μ˜ˆμ™Έ μ²˜λ¦¬κ°€ λ°˜λ“œμ‹œ ν•„μš”ν•˜μ§€ μ•Šμ€ μ˜ˆμ™Έμž…λ‹ˆλ‹€.
-------------------------------------------------------
  • μ˜ˆμ™Έ λ°œμƒκ³Ό try-catch, finally λ¬Έ
-------------------------------------------------------
πŸ”» try
	- μ˜ˆμ™Έκ°€ λ°œμƒν•  κ°€λŠ₯성이 μžˆλŠ” μ½”λ“œλ₯Ό 일단 μ‹€ν–‰!
   ---------------------------------
πŸ”» catch
	- μ˜ˆμ™Έκ°€ λ°œμƒν–ˆμ„ λ•Œ μ‹€ν–‰ν•  μ½”λ“œ
   ---------------------------------
πŸ”» finally
	- μ˜ˆμ™Έ λ°œμƒ 여뢀와 상관없이 항상 μ‹€ν–‰λ˜λŠ” μ½”λ“œ
-------------------------------------------------------
throwsthrow
λ©”μ„œλ“œ 이름 뒀에 λΆ™μ–΄ 이 λ©”μ„œλ“œκ°€ μ–΄λ– ν•œ μ˜ˆμ™Έμ‚¬ν•­μ„ 던질 수 μžˆλŠ”μ§€ μ•Œλ €μ£ΌλŠ” μ˜ˆμ•½μ–΄μž…λ‹ˆλ‹€.λ©”μ„œλ“œ μ•ˆμ—μ„œ, μ‹€μ œλ‘œ μ˜ˆμ™Έ 객체λ₯Ό 던질 λ•Œ μ‚¬μš©ν•˜λŠ” μ˜ˆμ•½μ–΄μž…λ‹ˆλ‹€.
μ—¬λŸ¬ μ’…λ₯˜μ˜ μ˜ˆμ™Έμ‚¬ν•­μ„ 적을 수 μžˆμŠ΅λ‹ˆλ‹€.μ‹€μ œλ‘œ λ˜μ§€λŠ” μ˜ˆμ™Έ 객체 ν•˜λ‚˜μ™€ 같이 써야 ν•©λ‹ˆλ‹€.
일반 λ©”μ„œλ“œμ˜ return ν‚€μ›Œλ“œμ²˜λŸΌ throw μ•„λž˜μ˜ ꡬ문듀은 μ‹€ν–‰λ˜μ§€ μ•Šκ³ , throwλ¬Έκ³Ό ν•¨κ»˜ λ©”μ„œλ“œκ°€ μ’…λ£Œλ©λ‹ˆλ‹€.
  • μ˜ˆμ™Έ 클래슀 ꡬ쑰 μ΄ν•΄ν•˜κΈ°
-------------------------------------------------------
πŸ”» μžλ°”μ˜ Throwable Class
	- μ‹œμž‘μ€ λͺ¨λ“  객체의 μ›ν˜•μΈ `Object` ν΄λž˜μŠ€μ—μ„œ μ‹œμž‘ν•©λ‹ˆλ‹€.
	- μ•„κΉŒ μ •μ˜ν•œ β€œλ¬Έμ œ 상황”을 λœ»ν•˜λŠ” `Throwable` ν΄λž˜μŠ€κ°€ Object 클래슀λ₯Ό μƒμ†ν•©λ‹ˆλ‹€.
	- `Throwable` 클래슀의 μžμ‹μœΌλ‘œ μ•žμ„œλ°°μš΄ μ—λŸ¬(`Error`)와 μ˜ˆμ™Έ(`Exception`) ν΄λž˜μŠ€κ°€ μžˆμŠ΅λ‹ˆλ‹€.
	- μ—λŸ¬(`Error`) ν΄λž˜μŠ€μ™€ μ˜ˆμ™Έ(`Exception`) ν΄λž˜μŠ€λŠ” 각각 `IOError` 클래슀, `RuntimeException` ν΄λž˜μŠ€μ™€ 같이 κ΅¬λΆ„ν•˜μ—¬ μ²˜λ¦¬λ©λ‹ˆλ‹€.
-------------------------------------------------------

profile
첫 μ‹œμž‘

0개의 λŒ“κΈ€