Çϳª ÀÌ»óÀÇ ¼¼ú¹®µéÀ» (¸í·É¾î³ª Ç¥Çö½ÄÀ») throw ¸í·É¾î°¡ ´øÁö´Â ½ÇÇà½Ã°£ ¿¡·¯¿Í ¿¹¿Ü·ÎºÎÅÍ º¸È£ÇÕ´Ï´Ù.
Try Statement
Try { Statements }
try ¸í·É¾î´Â º¸Åë ´ÙÀ½¿¡ ºí·ÏÀÌ µû¶ó¿É´Ï´Ù - È°°ýÈ£·Î µÑ·¯ ½ÎÀÎ Çϳª ÀÌ»óÀÇ ¼¼ú¹® (¸í·É¾î³ª Ç¥Çö½Ä). ÇϳªÀÇ ¼¼ú¹®¸¸ ½ÇÇàÇÑ´Ù¸é, try¿Í °°Àº ÁÙ ¶Ç´Â ´ÙÀ½ ÁÙ¿¡ ¹èÄ¡ÇÒ ¼ö ÀÖ°í, È°°ýÈ£¸¦ »ý·«ÇÒ ¼ö ÀÖ½À´Ï´Ù. try°¡ ¿¡·¯¸¦ ÀâÀ» ¶§ Á¤È®ÇÏ°Ô ÇÑ ¹ø¸¸ ½ÇÇàµÇ´Â Äڵ带 ÁöÁ¤ÇÏ·Á¸é, catch ¸í·É¾î¸¦ »ç¿ëÇϽʽÿÀ.
½ÇÇà½Ã°£ ¿¡·¯°¡ ÀϾ¸é throw ¸í·É¾î ¶Ç´Â ÇÁ·Î±×·¥ÀÌ ¿¹¿Ü¸¦ ´øÁú ¼ö ÀÖ½À´Ï´Ù. try ºí·Ï ¾È¿¡¼ ¶Ç´Â ºí·Ï¿¡¼ È£ÃâÇÑ ÇÔ¼ö ¾È¿¡¼ ¿¹¿Ü°¡ ´øÁ®Áú ¶§, ´ÙÀ½°ú °°Àº ÀÏÀÌ ÀϾ´Ï´Ù:
try ºí·ÏÀÌ ½ÇÇà ÁßÀÌÁö ¾ÊÀº µ¿¾È¿¡ ¿¹¿Ü°¡ ´øÁ®Áö¸é, ¿¡·¯ ¸Þ½ÃÁö¸¦ º¸¿©ÁÖ°í ÇöÀç ¾²·¹µå¸¦ Á¾·áÇÕ´Ï´Ù.
One True Brace (OTB) ½ºÅ¸ÀÏÀ» ¼±ÅÃÀûÀ¸·Î try ¸í·É¾î¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î:
try { ... } catch e { ... }
; ¿¹Á¦ #1: try/catch/throwÀÇ ±âº» °³³ä. try ; Äڵ带 ½ÇÇàÇØ º¾´Ï´Ù. { HelloWorld() MakeToast() } catch e ; À§ÀÇ ºí·Ï¿¡¼ ÀÏÀ¸Å² ù ¹ø° ¿¡·¯/¿¡¿Ü¸¦ ó¸®ÇÕ´Ï´Ù. { MsgBox, ¿¹¿Ü°¡ ´øÁ®Á³½À´Ï´Ù!`n±¸Ã¼ÀûÀ¸·Î ´ÙÀ½°ú °°½À´Ï´Ù: %e% Exit } HelloWorld() ; ¾ðÁ¦³ª ¼º°øÇÕ´Ï´Ù. { MsgBox, Hello, world! } MakeToast() ; ¾ðÁ¦³ª ½ÇÆÐÇÕ´Ï´Ù. { ; try ºí·ÏÀÇ ¿¡·¯ 󸮿¡ °ð¹Ù·Î Á¡ÇÁÇÕ´Ï´Ù: throw A_ThisFunc " is not implemented, sorry" }
; ¿¹Á¦ #2: ErrorLevel ´ë½Å¿¡ try/catch »ç¿ëÇϱâ. try { ; ´ÙÀ½ ¿¹Á¦´Â ¾î¶² À¯ÇüÀÇ ÆÄÀÏÀ» ¹é¾÷ÇÕ´Ï´Ù: FileCopy, %A_MyDocuments%\*.txt, D:\Backup\Text documents FileCopy, %A_MyDocuments%\*.doc, D:\Backup\Text documents FileCopy, %A_MyDocuments%\*.jpg, D:\Backup\Photos } catch { MsgBox, 16,, ÆÄÀÏÀ» ¹é¾÷ÇÏ´Â µ¿¾È ¹®Á¦°¡ ÀÖ¾ú½À´Ï´Ù! ExitApp }
; ¿¹Á¦ #3: COM ¿¡·¯ ´Ù·ç±â. try { obj := ComObjCreate("ScriptControl") obj.ExecuteStatement("MsgBox ""This is embedded VBScript""") obj.InvalidMethod() ; ÀÌ ÁÙÀº ½ÇÇà ½Ã°£ ¿¡·¯¸¦ ÀÏÀ¸Åµ´Ï´Ù. } catch e { ; e¸¦ ´ã°í ÀÖ´Â °´Ã¼¿¡ °üÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â Exception()¸¦ ÂüÁ¶ÇϽʽÿÀ. MsgBox, 16,, % "Exception thrown!`n`nwhat: " e.what "`nfile: " e.file . "`nline: " e.line "`nmessage: " e.message "`nextra: " e.extra }
; ¿¹Á¦ #4: try-catch ¼¼ú¹®µéÀ» ³»Æ÷Çϱâ. try Example1() ; ÇÑ ÁÙ ¼¼ú¹®Àº Try ¸í·É¾î¿Í °°Àº ÁÙ¿¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. catch e MsgBox, Example1() threw %e%. Example1() { try Example2() catch e { if e = 1 throw e ; ¿¹¿Ü¸¦ ´Ù½Ã ´øÁ®¼ È£ÃâÀÚ°¡ ¹ÞÀ» ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. else MsgBox, Example2() threw %e%. } } Example2() { Random, o, 1, 2 throw o }