[[pagelist(^RubyLanguage)]] [[TableOfContents]] = Exception = * 예외 í´ëž˜ìŠ¤ë“¤ì€ Exception í´ëž˜ìŠ¤ë¥¼ ìƒì†ë°›ëŠ”다. * 예외가 ë°œìƒí•˜ë©´ 예외 ì²˜ë¦¬êµ¬ë¬¸ì´ ë‚˜ì˜¬ ë•Œ 까지 호출 스íƒì„ íƒ€ê³ ì´ë™í•œë‹¤. * [http://lambert.tistory.com/168 계층ë„] = Exception Handler = * $! : ì—러를 담는 ì „ì— ê°ì²´ * rescue * 예외 처리 구문, rescue는 switch case문처럼 ë™ìž‘한다. 맞는 처리 êµ¬ë¬¸ì„ ì°¾ì„ ë•Œ 까지 ê³„ì† ë§¤ì¹. * begin안ì—ì„œ 실행하다 예외가 ë°œìƒí•˜ë©´ rescue 구문으로 ì»¨íŠ¸ë¡¤ì´ ì´ë™ëœë‹¤. * 예외를 처리후 다시 ì´ì „ 코드로 ëŒì•„ê°€ê³ ì‹¶ë‹¤ë©´ retry하면 ëœë‹¤. * 예외가 ë°œìƒí•˜ì§€ 않으면 rescue는 실행ë˜ì§€ 않는다. *사용법 : rescue 예외í´ëž˜ìŠ¤ëª… * [http://enshahar.tistory.com/65 ì°¸ê³ ] {{{ rescue Exception # 예외 처리 end }}} * else * 예외가 ë°œìƒí•˜ì§€ ì•Šì•˜ì„ ë•Œ 실행ë˜ëŠ” ì½”ë“œë¸”ëŸ * ensure * ì˜ˆì™¸ì˜ ë°œìƒ ìœ ë¬´ì™€ ìƒê´€ì—†ì´ í•ìƒ 실행ë˜ëŠ” ì½”ë“œë¸”ëŸ * ìžë°”ì˜ finally와 ê°™ìŒ * catch throw * 예외 ì²˜ë¦¬ì˜ ë‹¤ë¥¸ 형태 * 예외 ë°œìƒì‹œ throw를 ì´ìš©í•´ 예외를 ë°œìƒì‹œí‚¤ê³ catchì—ì„œ ì‹¬ë³¼ì„ ì´ìš©í•˜ì—¬ 예외를 ìºì¹˜í•œë‹¤. * throwì—ì„œ 심볼(ë¼ë²¨)ì„ ì´ìš©í•˜ë©´ ì¤‘ì²©ëœ ì½”ë“œ êµ¬ë¬¸ì„ ë°”ë¡œ íƒˆì¶œí• ìˆ˜ 있다. = Exception Raise = * 예외 ë°œìƒì‹œí‚¤ê¸° * Kernal.raise(ë˜ëŠ” Kernal.fail)ë¡œ 예외를 ë°œìƒì‹œí‚¨ë‹¤ = Exception Extend = * 예외 í´ëž˜ìŠ¤ë¥¼ ìƒì†í•˜ì—¬ 새로운 예외 í´ëž˜ìŠ¤ë¥¼ ì¶”ê°€í• ìˆ˜ 있다