프로그래밍/asp

ON Error Resume Next

GOHA 2011. 6. 24. 09:19
728x90


If 문의 조건 절에서 오류가 발생했을 때, On Error Resume Next 는

무조건 If 문을 만족시킨 것으로 간주하게 된다.

이 것을 이해하기 위해서는 On Error Resume Next 문이 가지는 의미에 대해서 깊게 알 필요가 있다.

On Error Resume Next는 다음 코드에서의 On Error Goto RN 과 같은 작용을 한다.


Sub testSub()

On Error Goto RN ' Same as On Error Resume Next

어쩌구 저쩌구 코딩이 들어간다.

Exit Sub

RN:

Resume Next

End Sub


이는 오류 발생시 Resume Next 문을 실행하는 것과 같은 것으로,
Resume Next 는 오류 발생 지점에서 바로 다음 문을 실행하는 기능을 한다.

그런데 오류가 만일 If 문의 조건절에서 발생하게 된다면,
Resume Next는 조건절의 다음 문인 If 문 안의 코드를 수행하게 되는 것이다.

이런 문제를 의식하지 못하고 그냥 On Error Resume Next를 쓴다면,
프로그램에는 예상하지 못한 버그가 발생할 가능성이 높다.


그러므로 항상 On Error Resume Next 를 사용할 때에는 If 문을 의식하면서 사용할 필요가 있다.

728x90