어느 프로그래밍 언어든 상관 없이,
에러가 발생하면 이를 처리하는 과정을 직접 컨트롤 할 수 있습니다.
VB/VBA의 경우 에러가 발생하면 기본적으로,
'~에서 오류가 발생했습니다.'와 같은 몹시 멍청해 보이는 메세지와 함께
종료, 디버그가 버튼이 달린 다이얼로그가 나타나는데요,
On Error 구문을 이용하면 이를 자신이 직접 제어할 수 있게 됩니다.
'귀찮게 이걸 제어해서 대체 어디다 쓰느냐!' 하고 생각하시는 분들도 계실텐데요,
VB/VBA는 그리 좋은 프로그래밍 언어가 아니기 때문에 어쩔 수 없습니다.
코딩을 하다 보면, '고의적으로' 에러를 유도해서 처리를 해야 하는 부분도 있기 때문입니다.
이에 대한 이야기는 다음에 다루도록 하고,
우선은 기본적인 On Error 구문의 구조는 살펴보도록 하겠습니다.
문의 선두에 On Error 구문을 집어 넣으면,
그 이하의 구문에서 에러가 발생했을 때 이를 직접 처리할 수 있게 됩니다.
여기서 GoTo는 특정 레이블(errr:)로 가라는 뜻인데요,
만일 에러를 무시하고 다음 구문을 그대로 진행시키고자 한다면
On Error Resume Next 라고 넣어주시면 됩니다.
라인 4
만일 에러를 처리할 부분까지 정상적인 작업 수행 과정에 포함시킬 것이 아니라면,
반드시 Exit Function (혹은 Exit Sub)을 넣어주어야 합니다.
그렇지 않으면 우리의 멍청한 VB/VBA는 End Function (혹은 End Sub)를 만날 때까지
우직하게 구문을 실행할 것이기 때문입니다.
라인 6
이곳에서 에러 발생 시의 처리를 위한 코딩을 하면 됩니다.
모든 오류에는 유형별 고유 넘버가 있는데요, 이는 err.Number 에서 찾을 수 있답니다.
이상으로 대략적인 On Error 구문의 역할과 구조를 살펴보았는데요,
VB/VBA 혹은 다른 프로그래밍 언어들을 조금이라도 다뤄본 적이 있으신 분이라면
이 구문을 사용하는 것에 큰 어려움은 느끼지 않으실거라 생각합니다.
다음에는 위에서 언급했던 대로,
'고의적으로' 에러를 유도해서 처리하는 것에 대해 이야기 하도록 하겠습니다.
에러가 발생하면 이를 처리하는 과정을 직접 컨트롤 할 수 있습니다.
VB/VBA의 경우 에러가 발생하면 기본적으로,
'~에서 오류가 발생했습니다.'와 같은 몹시 멍청해 보이는 메세지와 함께
종료, 디버그가 버튼이 달린 다이얼로그가 나타나는데요,
On Error 구문을 이용하면 이를 자신이 직접 제어할 수 있게 됩니다.
'귀찮게 이걸 제어해서 대체 어디다 쓰느냐!' 하고 생각하시는 분들도 계실텐데요,
VB/VBA는 그리 좋은 프로그래밍 언어가 아니기 때문에 어쩔 수 없습니다.
코딩을 하다 보면, '고의적으로' 에러를 유도해서 처리를 해야 하는 부분도 있기 때문입니다.
이에 대한 이야기는 다음에 다루도록 하고,
우선은 기본적인 On Error 구문의 구조는 살펴보도록 하겠습니다.
- Function aaa()
- On Error GoTo errr (레이블)
- ...(중략)...
- Exit Function
- errr:
- 에러를 제어하는 부분
- End Function
문의 선두에 On Error 구문을 집어 넣으면,
그 이하의 구문에서 에러가 발생했을 때 이를 직접 처리할 수 있게 됩니다.
여기서 GoTo는 특정 레이블(errr:)로 가라는 뜻인데요,
만일 에러를 무시하고 다음 구문을 그대로 진행시키고자 한다면
On Error Resume Next 라고 넣어주시면 됩니다.
라인 4
만일 에러를 처리할 부분까지 정상적인 작업 수행 과정에 포함시킬 것이 아니라면,
반드시 Exit Function (혹은 Exit Sub)을 넣어주어야 합니다.
그렇지 않으면 우리의 멍청한 VB/VBA는 End Function (혹은 End Sub)를 만날 때까지
우직하게 구문을 실행할 것이기 때문입니다.
라인 6
이곳에서 에러 발생 시의 처리를 위한 코딩을 하면 됩니다.
모든 오류에는 유형별 고유 넘버가 있는데요, 이는 err.Number 에서 찾을 수 있답니다.
이상으로 대략적인 On Error 구문의 역할과 구조를 살펴보았는데요,
VB/VBA 혹은 다른 프로그래밍 언어들을 조금이라도 다뤄본 적이 있으신 분이라면
이 구문을 사용하는 것에 큰 어려움은 느끼지 않으실거라 생각합니다.
다음에는 위에서 언급했던 대로,
'고의적으로' 에러를 유도해서 처리하는 것에 대해 이야기 하도록 하겠습니다.
'컴퓨터' 카테고리의 다른 글
[Plugin] 포토샵 ICO 포맷 플러그인 (2) | 2009.09.20 |
---|---|
[Utility] 버추얼덥 및 코덱 (X264, Xvid) (1) | 2009.09.19 |
[Utility] SMI Mass Production Tool (2) | 2009.09.18 |
[Javascript] 더블클릭으로 페이지 상하단 이동하는 자바스크립트 (0) | 2009.07.04 |
[Linux] 압축 명령어 정리 (0) | 2009.07.03 |
[Vb/Vba] On Error 구문 #2 (0) | 2009.07.01 |
[Vba] 기본 VBA 함수가 사용되지 않을 시 대처법 (0) | 2009.07.01 |
[Vb/Vba] 텍스트 박스에서 한영전환 방법 (0) | 2009.07.01 |
[Ftp/Server] FileZilla 를 이용한 FTP 서버 구축 (0) | 2009.07.01 |
[HTML] 표 그리기 (0) | 2009.07.01 |
IE9 이상으로 브라우저를 업그레이드하거나, 크롬, 파이어폭스 등 최신 브라우저를 이용해주세요.