32-1-¶ó.Áßø ¿¹¿Ü ó¸®

¿¹¿Ü ó¸® ±¸¹®Àº Áßø °¡´ÉÇÏ´Ù. Áï try ºí·Ï¾È¿¡ ¶Ç ´Ù¸¥ try ºí·ÏÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¸ç Áßø ´Ü°è¿¡´Â º°´Ù¸¥ Á¦¾àÀÌ ¾ø´Ù. ´ÙÀ½ ¿¹Á¦´Â Çйø, À̸§, ³ªÀ̸¦ ÀÔ·Â¹Þ¾Æ ±×´ë·Î Ãâ·ÂÇϴµ¥ Çйø°ú ³ªÀÌ´Â ¹Ýµå½Ã ¾ç¼ö¿©¾ß Çϸç À̸§Àº ÃÖ¼ÒÇÑ 4ÀÚ ÀÌ»óÀ̾î¾ß ÇÑ´Ù. Çѱ¹ »ç¶÷ À̸§Àº ÃÖ¼ÒÇÑ 2±ÛÀÚ ÀÌ»óÀ̹ǷΠ¾Æ¹«¸® ª¾Æµµ 4¹ÙÀÌÆ® ÀÌ»óÀ̾î¾ß ÇÑ´Ù´Â ±ÔÄ¢Àº ¾ÆÁÖ ÀÚ¿¬½º·´´Ù.

 

¿¹ Á¦ : nesttry

#include <Turboc.h>

 

void main()

{

     int Num;

     int Age;

     char Name[128];

 

     try {

          printf("ÇйøÀ» ÀÔ·ÂÇϽÿÀ : ");

          scanf("%d",&Num);

          fflush(stdin);

          if (Num <= 0) throw Num;

          try {

              printf("À̸§À» ÀÔ·ÂÇϽÿÀ : ");

              gets(Name);

              if (strlen(Name) < 4) throw "À̸§ÀÌ ³Ê¹« ª½À´Ï´Ù";

              printf("³ªÀ̸¦ ÀÔ·ÂÇϽÿÀ : ");

              scanf("%d",&Age);

              if (Age <= 0) throw Age;

              printf("ÀÔ·ÂÇÑ Á¤º¸ => Çйø:%d, À̸§:%s, ³ªÀÌ:%d\n",Num,Name,Age);

          }

          catch(const char *Message) {

              puts(Message);

          }

          catch(int) {

              throw;

          }

     }

     catch(int n) {

          printf("%d´Â À½¼öÀ̹ǷΠÀûÇÕÇÏÁö ¾Ê½À´Ï´Ù.\n",n);

     }

}

 

ÃÖÃÊ ¹Ù±ùÂÊÀÇ try ºí·Ï¿¡¼­ Çйø NumÀ» ÀԷ¹޴µ¥ ÀÌ °ªÀÌ À½¼ö(0µµ Æ÷ÇÔ)ÀÏ °æ¿ì À߸øµÈ °ªÀ̹ǷΠNumÀ» ¿¹¿Ü·Î ´øÁø´Ù. ÀÌ ¿¹¿Ü´Â ¹Ù±ùÂÊÀÇ catch(int n)ÀÌ ¹Þ¾Æ ó¸®ÇÒ °ÍÀÌ´Ù. ÇйøÀÌ Á¦´ë·Î ÀԷµǾúÀ» °æ¿ì À̸§°ú ³ªÀ̸¦ ÀԷ¹޴µ¥ À̸§ ±æÀ̰¡ 4º¸´Ù ÀÛÀ» °æ¿ì ¹®ÀÚ¿­·Î µÈ ¿¹¿Ü¸¦ ´øÁø´Ù. ÀÌ ¿¹¿Ü´Â ¾ÈÂÊÀÇ catch(const char *)°¡ ¹Þ¾Æ¼­ ó¸®ÇÑ´Ù.

³ªÀ̰¡ À½¼öÀÏ °æ¿ì´Â ¾ÈÂÊÀÇ catch(int)·Î ¿¹¿Ü¸¦ ´øÁø´Ù. À̶§ ¾ÈÂÊ¿¡¼­ Á¤¼öÇü ¿¹¿Ü¸¦ ó¸®Çϱ⿡ ºÎÀû´çÇϴٰųª ¾Æ´Ï¸é ÀÌ¹Ì ¹Ù±ùÂÊ¿¡¼­ °°Àº Á¾·ùÀÇ ¿¹¿Ü¸¦ ó¸®Çϰí ÀÖ´Ù¸é ¾ÈÂÊÀÇ catch¿¡¼­´Â ÀÌ ¿¹¿Ü¸¦ Á÷Á¢ ó¸®ÇÏÁö ¾Ê°í ¹Ù±ùÂÊÀÇ ¿¹¿Ü 󸮱⿡°Ô ³Ñ±â´Â °ÍÀÌ ´õ Æí¸®ÇÏ´Ù. catch ºí·Ï¿¡¼­ ¿¹¿Ü¸¦ ´Ù½Ã ´øÁú ¶§´Â ¿¹¿Ü °´Ã¼¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä¾øÀÌ throw ¸í·É¸¸ ´Üµ¶À¸·Î »ç¿ëÇÑ´Ù. ¹ÞÀº °´Ã¼¸¦ ±×´ë·Î ´Ù½Ã ³Ñ±â´Â °ÍÀ̹ǷΠ¿¹¿Ü °´Ã¼¸¦ ¸í½ÃÇÒ Çʿ䰡 ¾øÀ¸¸ç Á÷Á¢ ó¸®ÇÏÁö ¾ÊÀ¸¹Ç·Î catchÀÇ °ýÈ£¾È¿¡ ¿¹¿Ü °´Ã¼ÀÇ À̸§À» ÁÙ Çʿ䵵 ¾ø´Ù.

catch¿¡¼­ ¹Ù±ùÂÊ catch·Î Á¡ÇÁÇÒ ¶§´Â throw ¸í·É¸¸ ´Üµ¶À¸·Î »ç¿ëÇϴµ¥ ¸¸¾à ¹Ù±ùÂÊ¿¡ ÀûÀýÇÑ catch°¡ ¾øÀ¸¸é ÀÌ ¿¹¿Ü´Â µðÆúÆ® 󸮵Ǿî ÇÁ·Î±×·¥ÀÌ °­Á¦ Á¾·áµÈ´Ù. ÀÌ ¿¹Á¦´Â ÇÑ ÇÔ¼ö¾È¿¡¼­ try¸¦ Áßø½ÃÄÑ ´Ù¼Ò ¾ïÁö½º·¯¿î ¸éÀÌ Àִµ¥ ¿¹¿Ü¸¦ ´øÁö´Â ÇÔ¼ö³¢¸® ¼­·Î È£ÃâÇÏ´Ù º¸¸é ¿¹¿Ü ó¸® ºí·ÏÀ» ÁßÃ¸ÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.