매크로

조회 수 3100 추천 9 댓글 106

https://i.imgur.com/mDzcCcG.png


함수를?Try?하고, 예외발생시 에러코드를?Throw?하고 Exception 을 Catch 한다.

?

Try 는 알고리즘을 구성할때 굉장히 중요하고, 필수적인?문법입니다.?이미지서치할때 ErrorLevel 을 확인하죠?

에러레벨을 반환하는 과정이 바로?Try하고 Catch 하는 과정입니다.

?

기본적인 Try, Catch 코드를 확인해보겠습니다.

?

try? ; 함수를 시도한다
{
??? HelloWorld()
??? MakeToast()
}
catch e? ;try 함수의 Exception 을 관리합니다
{
??? MsgBox, Exception 이 Throw 되었습니다 `nThrow된 함수: %e%
??? Exit
}

HelloWorld()? ; 항상 성공하는 함수, Exception 이 없습니다
{
??? MsgBox, 안녕하세요!
}

MakeToast()? ; 항상 실패하는 함수, Exception 이 생성됩니다
{
??? ; try 부분의 Catch 함수로 점프
??? throw A_ThisFunc " 가 실패하였습니다."
}?

?

Try??함수를 실행하는 부분입니다. 위 코드에서는 HelloWorld() 와? MakeToast() 라는 2개의 함수를 실행했습니다.

Throw : Exception 을 던져줍니다. 위 코드에서는 MakeToast() 함수가 Throw 했습니다.

Catch : Exception 즉 , 예외를 받습니다.?Throw를?받아와 정보를 얻습니다. 위 코드에서는 A_ThisFunc " 가 실패하였습니다." 라는 예외를 받았습니다.

?

주석을 달았으니 알고리즘에 대한 이해는 어느정도 되실거라 예상합니다. Try와 Catch 에 대해 좀 알아보면..


Try는 블럭 { } 으로 감싸주어야합니다.

?

try {
??? ...
} catch e {
??? ...
}

?

?

Catch 는 아래와 같습니다.

?

Catch [, 저장할변수]
{
???? ...
}

?

저장할변수는 생략이 가능한데, 변수설정시에는 아래 5가지의 정보가 오브젝트(배열)로 저장됩니다.

What : 명령 또는 실행된 함수 또는 에러가 실행된 때에 대한 이름

File : 에러가 발생한 스크립트 파일의 경로

Line : 에러가 발생한 곳의 줄 번호

Message : 에러 메세지 또는 ErrorLevel 값

Extra : 에러에 대한 부가적인 설명


아래 코드는 예외발생시 에러에 대한 정보를 표시해요

?

try
{
??? obj := ComObjCreate("ScriptControl")
??? obj.ExecuteStatement("MsgBox ""내장 VBScript""")
??? obj.InvalidMethod() ; 런타임 에러를 발생시킴
}
catch e
{
??? ; For more detail about the object that e contains, see Catch.
??? MsgBox, 16,, % "Exception이 throw되었습니다!`n`nwhat: " e.what "`nfile: " e.file
??????? . "`nline: " e.line "`nmessage: " e.message "`nextra: " e.extra
}

?

Try, Catch 구문을 사용하는 이유는 코드를 작성할때, 모든 경우의 알고리즘을 작성할 것이 아니기 때문입니다.

또한 에러레벨보다 다양하게 예외의 상황에 대처하게끔 만들수있기 떄문이죠.

else if 적어가면서 코드의 길이를 늘릴?필요도없고요.

Try , Catch 구문을 통해 정교하고 깔금한?프로그램 만드시기 바랍니다!


원본 글 http://me2.do/xgMrmkRX



List of Articles
제목 글쓴이 최근변경 추천
작성중인 오토핫키 강좌글입니다. 523 예지력1 2024.02.08 56/0
오토핫키 반응형 학습 어플리케이션 308 예지력1 2023.02.05 40/0
내장파일 설치 가상화 133 예지력1 2023.02.05 27/0
함수 Function 에 대한 이해 279 예지력1 2023.07.21 23/0
코드 최적화 Code Optimization 124 예지력1 2022.12.14 23/0
코드의 속도, 성능을 높이는 한줄 팁 모음 189 예지력1 2023.06.24 20/0
오토핫키 OpenCV 템플릿매칭 라이브러리 65 CatLab 2023.10.21 12/0
FileInstall 파일을 설치하기 123 예지력1 2023.03.17 12/0
[문법] Try, Catch 함수를 Try하고 예외를 Catch 한다 106 예지력1 2023.02.05 9/0
[디자인] GUI 스킨 214 예지력1 2023.11.03 9/0
아이템획득, 특정이벤트 발생 시 카톡으로 알림 55 dlslwl 2023.10.18 4/0
배열끼리 합치기 7 bkvcqr 2023.11.14 3/0
랜덤좌표 스크립트 입니다. 78 sama 2023.11.04 3/0
핫키에 사용하는 심볼 설명 bkvcqr 2022.07.27 2/0
단축키로 체크박스 온오프하기 8 bkvcqr 2023.08.26 2/0
특정확장자 삭제하기 21 여의도김매력 2022.12.14 2/0
화면안에서 마우스좌표 따기입니다. 109 MaximM 2023.11.04 2/0
오토핫키로 윈도우창 핸들값 이랑 피드값 확인하기 함카리스마 2024.01.26 1/0
오토핫키 질문있습니다 3 뭐시바 2024.03.28 1/0
구이창 어디를 클릭&드래그를 해도 창 위치를 이동 bkvcqr 2022.05.31 1/0
Board Pagination Prev 1 2 3 Next
/ 3

전체 최신 인기글

전체 주간 인기글