¿¹¿Ü ó¸® ±¸¹®Àº Áßø °¡´ÉÇÏ´Ù. Áï 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¸¦ Áßø½ÃÄÑ ´Ù¼Ò ¾ïÁö½º·¯¿î ¸éÀÌ Àִµ¥ ¿¹¿Ü¸¦ ´øÁö´Â ÇÔ¼ö³¢¸® ¼·Î È£ÃâÇÏ´Ù º¸¸é ¿¹¿Ü ó¸® ºí·ÏÀ» ÁßÃ¸ÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.