하나 이상의 서술문 (명령어나 표현식)을 throw 명령어가 던지는 실행시간 에러와 예외로부터 보호합니다.
Try Statement
Try
{
Statements
}
try 명령어는 보통 다음에 블록이 따라옵니다 - 활괄호로 둘러 싸인 하나 이상의 서술문 (명령어나 표현식). 하나의 서술문만 실행한다면, try와 같은 줄 또는 다음 줄에 배치할 수 있고, 활괄호를 생략할 수 있습니다. try가 에러를 잡을 때 정확하게 한 번만 실행되는 코드를 지정하려면, catch 명령어를 사용하십시오.
실행시간 에러가 일어나면 throw 명령어 또는 프로그램이 예외를 던질 수 있습니다. try 블록 안에서 또는 블록에서 호출한 함수 안에서 예외가 던져질 때, 다음과 같은 일이 일어납니다:
try 블록이 실행 중이지 않은 동안에 예외가 던져지면, 에러 메시지를 보여주고 현재 쓰레드를 종료합니다.
One True Brace (OTB) 스타일을 선택적으로 try 명령어에 사용할 수 있습니다. 예를 들어:
try { ... } catch e { ... }
Catch, Throw, Finally, 블록, OnError()
Demonstrates the basic concept of 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" }
Demonstrates the use of try/catch instead of ErrorLevel.
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 }
Demonstrates the use of try/catch dealing with COM errors. For details about the COM object used below, see Using the ScriptControl (Microsoft Docs).
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 }