ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • On Error Resume Next
    dev/etc 2013. 10. 9. 16:44

    에러가 발생해도 다음 라인의 코드를 실행하겠다는 선언문이다.

     

    On Error Resume Next

    IF 1/1=1 THEN

        Response.Write "여기는 잘 나와야 "

    END IF

       

    IF 1/0=0 then     

        Response.Write "여기는 실행되면 안되는데...실행 되는게 On Error Resume Next."

    END IF

           

    사실 이건 조낸 위험한 코드다.

           

    On Error Resume Next

    do while not RST.EOF

        Response.Write RST.Fields("FieldName")

        RST.MoveNext

    loop

           

    위 코드는 Classic ASP에서 많이 볼 수 있는 코드다.

    저 레코드셋을 가져오기 전에 Database작업에서 에러발생하면? 무한루프다.

    IIS서버의 코어 하나가 CPU 100%를 솟구칠 것이다.

           

    적절한 에러처리를 하던지 위와 같은 코드는 아래와 같이 사용해야 최소한 무한루프는 피할 수 있다.

           

    On Error Resume Next

    For i = 1 To RST.RecordCount -1

        Response.Write RST.Fields("FieldName")

        RST.MoveNext

    Next i

           

    결론은..

    조건문이 있을때는 주의해서 사용하자.

    적절한 에러처리를 해라.

    댓글