U E D R , A S I H C RSS

Ruby Language/Exception Handling

  1. RubyLanguage
  2. RubyLanguage/Class
  3. RubyLanguage/Container
  4. RubyLanguage/ExceptionHandling
  5. RubyLanguage/InputOutput



1. Exception

  • μ˜ˆμ™Έ ν΄λž˜μŠ€λ“€μ€ Exception ν΄λž˜μŠ€λΌ μƒμ†λ°›λŠ”λ‹€.
    • μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ μ˜ˆμ™Έ 처리ꡬ문이 λ‚˜μ˜¬ λ•Œ κΉŒμ§€ 호좜 μŠ€νƒμ„ 타고 μ΄λ™ν•œλ‹€.
    • 계측도

2. Exception Handler

  • $! : μ—λŸ¬λΌ λ‹΄λŠ” μ „μ—­ 객체
  • rescue
    • μ˜ˆμ™Έ 처리 ꡬ문, rescueλŠ” switch case문처럼 λ™μž‘ν•œλ‹€. λ§žλŠ” 처리 ꡬ문을 찾을 λ•Œ κΉŒμ§€ 계속 맀칭.
    • beginμ•ˆμ—μ„œ μ‹€ν–‰ν•˜λ‹€ μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ rescue ꡬ문으둜 컨트둀이 μ΄λ™λœλ‹€.
    • μ˜ˆμ™ΈλΌ μ²˜λ¦¬ν›„ λ‹€μ‹œ 이전 μ½”λ“œλ‘œ λŒμ•„κ°€κ³  μ‹Άλ‹€λ©΄ retryν•˜λ©΄ λœλ‹€.
    • μ˜ˆμ™Έκ°€ λ°œμƒν•˜μ§€ μ•ŠμœΌλ©΄ rescueλŠ” μ‹€ν–‰λ˜μ§€ μ•ŠλŠ”λ‹€.
    • μ‚¬μš©λ²• : rescue μ˜ˆμ™Έν΄λž˜μŠ€λͺ…
    • μ°Έκ³ 

 rescue Exception
   # μ˜ˆμ™Έ 처리 
 end
  • else
    • μ˜ˆμ™Έκ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜μ„ λ•Œ μ‹€ν–‰λ˜λŠ” μ½”λ“œλΈ”λŸ­
  • ensure
    • μ˜ˆμ™Έμ˜ λ°œμƒ μœ λ¬΄μ™€ 상관없이 항상 μ‹€ν–‰λ˜λŠ” μ½”λ“œλΈ”λŸ­
    • μžλ°”μ˜ finally와 κ°™μŒ
  • catch throw
    • μ˜ˆμ™Έ 처리의 λ‹€λ₯Έ ν˜•νƒœ
    • μ˜ˆμ™Έ λ°œμƒμ‹œ throwλΌ μ΄μš©ν•΄ μ˜ˆμ™ΈλΌ λ°œμƒμ‹œν‚€κ³  catchμ—μ„œ 심볼을 μ΄μš©ν•˜μ—¬ μ˜ˆμ™ΈλΌ μΊμΉ˜ν•œλ‹€.
    • throwμ—μ„œ 심볼(라벨)을 μ΄μš©ν•˜λ©΄ μ€‘μ²©λœ μ½”λ“œ ꡬ문을 λ°”λ‘œ νƒˆμΆœν•  수 μžˆλ‹€.

3. Exception Raise

  • μ˜ˆμ™Έ λ°œμƒμ‹œν‚€κΈ°
  • Kernal.raise(λ˜λŠ” Kernal.fail)둜 μ˜ˆμ™ΈλΌ λ°œμƒμ‹œν‚¨λ‹€

4. Exception Extend

  • μ˜ˆμ™Έ ν΄λž˜μŠ€λΌ μƒμ†ν•˜μ—¬ μƒˆλ‘œμš΄ μ˜ˆμ™Έ ν΄λž˜μŠ€λΌ μΆ”κ°€ν•  수 μžˆλ‹€

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:56
Processing time 0.0169 sec