✅ 올바른 패턴 (에러 범위 제한)
|
1 2 3 4 5 6 7 8 9 10 11 12 |
On Error Resume Next dbCon.Execute SQL If Err.Number <> 0 Then ' DB 오류 처리 End If On Error GoTo 0 ' ✅ 여기서 정상 복귀 |
➡️ DB 실행 구간에서만 오류 무시
➡️ 이후 로직은 정상적으로 오류 감지
🧠 내부적으로 무슨 일이 일어나나?
| 명령 | 내부 상태 |
|---|---|
On Error Resume Next | 에러 발생 → Err 객체에 저장, 실행 계속 |
On Error GoTo 0 | 에러 발생 → 즉시 중단, ASP 오류 페이지 |
⚠️ 숫자
0은 “에러 처리기를 사용하지 않는다”는 의미이지
GoTo 문처럼 어딘가로 이동하는 게 아닙니다.
✅ 실무 베스트 패턴 (추천)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
On Error Resume Next Err.Clear dbCon.Execute SQL If Err.Number <> 0 Then msg = Err.Description Err.Clear On Error GoTo 0 Response.Write "<script>alert('DB 오류 발생');</script>" Response.End End If On Error GoTo 0 |
Classic ASP에서 try/catch처럼 “구간(scope)을 딱 잘라” 안전하게 쓰는 실무 패턴들입니다. 핵심은 On Error Resume Next를 최소 범위로만 켰다가, 반드시 On Error GoTo 0으로 복구하는 겁니다.
