우리가 ASP에 익숙 할 때, 우리는 그것이 매우 간단하다는 것을 알게 될 것이므로 많은 개발자들이 오류를 처리하는 방법에 대해 생각하지 않을 것입니다. ASP로 작성된 대부분의 상업용 웹 사이트는 오류를 무시합니다. 이제 ASP 오류를 처리하는 방법을 이해해 봅시다.
간단한 소개
ASP는 너무 간단하여 많은 개발자가 오류 처리에 대해 생각하지 않습니다. 올바른 오류를 처리하면 응용 프로그램이 더 합리적 일 수 있습니다. ASP로 작성된 많은 상업용 웹 사이트를 보았는데 대부분 오류 처리를 무시합니다.
세 가지 주요 오류 유형이 있습니다.
컴파일 오류 :
이러한 종류의 오류는 일반적으로 코드 구문 문제로 인해 발생합니다.
컴파일 오류로 인해 ASP가 실행 중지 중지되었습니다.
오류를 실행하십시오
이 오류는 ASP를 실행할 준비가되었을 때 발생합니다.
예를 들어 : 값을 변수에 할당하려고하지만 변수가 허용하는 범위를 벗어납니다.
논리적 오류
논리적 오류는 감지하기가 가장 어렵습니다. 이러한 종류의 오류는 종종 컴퓨터에서 발견 할 수없는 구조적 오류입니다.
이를 위해서는 코드를 철저히 확인해야합니다.
컴파일 오류는 일반적으로 논리적 오류와 함께 발생하며 일반적으로 표시 될 수 있기 때문에 걱정하는 것은 작동 오류입니다. 그것은 모두 ASP의 작동을 종료하고 사용자에게 매우 비우호적 인 텍스트를 남깁니다.
그래서 우리는 어떻게 작동 오류를 처리합니까! ? 먼저 ASP가 제공 한 유일한 오류 명령을 살펴 봅시다. On Error Resume Next (초보자에게 ASP에 오류 이력서에만 있음을 상기시키고 싶습니다. 오류 이력서에 사용하지 않으면 다음 문장이 있습니다. 모든 작업 오류가 발생합니다. 이것은 치명적이며 오류 코드는 사용자에게 "표시"되고 ASP 프로그램도 중지됩니다.
오류 코드는 다음과 같습니다.
ODBC 드라이버 오류 80004005 용 Microsoft OLE DB 제공 업체
[Microsoft] [ODBC 드라이버 관리자] 데이터 소스 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다.
/test.asp, 60 행
프로그램 상단의 ON ERROR 이력서 다음 문을 사용하면 모든 오류가 무시되고 프로그램이 다음 문을 자동으로 실행합니다. 이러한 방식으로 프로그램은 완전히 실행되며 오류가 발생한 후에 사용자가 오류 메시지가 표시되지 않습니다. 그러나 이런 식으로도 단점이 있습니다. 즉, 프로그램이 상상할 수 있듯이 실행되지 않으면 무엇이 잘못되었는지 알아 내기가 어려울 것이므로 필요한 경우 오류를 처리해야합니다.
처리 오류
ASP에서 오류를 처리하는 가장 좋은 방법은 오류를 처리하기 위해 프로그램 하단에 코드를 넣는 것입니다. 또한 모든 ASP 프로그램에서 버퍼를 사용하는 것이 좋습니다. 이러한 방식으로 오류가 발생하면 페이지가 중지되고 페이지 내용이 지워 지므로 사용자가 오류 메시지가 표시되지 않으며 귀하에 대한 불만이 줄어 듭니다! 예는 다음과 같습니다.
< %@ language = "vbscript" %>
<% '버퍼를 true로 설정합니다
응답 .buffer = true
'오류 처리를 시작하십시오
다음에 오류가 재개됩니다
%>
<% '오류 처리
err.number <> 0 인 경우
'페이지를 지 웁니다
응답
'사용자에게 오류 메시지를 표시합니다
%>
<html>
<헤드>
<제목> </title>
</head>
<body bgcolor = "#c0c0c0">
<font face = "arial">이 ASP 페이지 실행에서 오류가 발생했습니다. <br>
다음 정보를 지원 데스크 <P>에보고하십시오
<b> 페이지 오류 객체 </b> <br>
오류 번호 : < %= err.number %> <br>
오류 메시지 : < %= err.description %> <br>
오류 파일 : < %= err.source %> <br>
오류 줄 : < %= err.line %> <br>
</font>
</body>
</html>
<%종료 if%>
위에서 볼 수 있듯이 먼저 다음에 오류 이력서를 설정하여 오류가 프로그램 실행에 영향을 미치지 않도록합니다.
오류 처리 및 데이터베이스
오류 처리에 데이터베이스를 추가하는 실행은 매우 복잡합니다. 데이터베이스에 레코드를 추가하기위한 많은 명령이있는 프로그램이있는 경우, 프로그램 하단에서 삽입/업데이트가 실행되면 이전에 오류가 발생하면 끝납니다! 데이터베이스에 오류 메시지를 추가합니다. 다음에 오류 이력서에 사용했기 때문에 모든 오류는 무시되었습니다! 이전에 오류가 있더라도 프로그램은 여전히 데이터베이스에 데이터를 추가합니다.
이 상황을 피하려면 먼저 몇 가지 트릭을 수행해야합니다. 이를 다루는 올바른 방법은 다음과 같습니다.
err.number = 0이고 objconnection.errors.count = 0 인 경우
'오류가 없기 때문에 진술은 여기에서만 실행될 수 있습니다.
rstresults set = dbdata.execute (txtsql)
끝 If
보다 고급 솔루션
오류가 발생하면 더 많은 오류 메시지를 표시 할 수도 있습니다. 아래는 데이터베이스와 페이지 오류를 모두 처리하는 예입니다. 그것으로, 우리는 프로그램의 모든 오류를 한 번에 발견 할 수 있습니다. (나는 어떤 곳에서는 영어가 말하기가 더 어렵다고 생각하기 때문에 번역은 없습니다).
<%
err.number <> 0 인 경우
응답
Case Err.Number를 선택하십시오
CASE 8 '잘못된 번호를 지정합니다
'사용자 지정 오류 문제를 해결하십시오
CASE ELSE 'General 오류
isobject (objconnection) 인 경우
objconnection.errors.count> 0 인 경우
%>
<b> 데이터베이스 연결 객체 </b>
intloop = 0의 경우 < % objconnection.errors.count -1 %>
오류 번호 : < %= objconnection.errors (intloop) .number %> <br>
설명 : < %= objconnection.errors (intloop) .description %> <br>
출처 : < %= objconnection.errors (intloop) .source %> <br>
sqlstate : < %= objconnection.errors (intloop) .sqlstate %> <br>
NativeError : < %= objconnection.errors (intloop) .nativeError %> <p>
<% 다음
끝 If
끝 If
err.number <> 0 인 경우
%>
<b> 페이지 오류 객체 </b> <br>
오류 번호 < %= err.number %> <br>
오류 설명 < %= err.description %> <br>
소스 < %= err.source %> <br>
LineNumber < %= err.line %> <p>
<% 종료 if
종료 선택
끝 If
%>
위의 예를 통해 우리는 데이터베이스에서 발생하는 많은 문제를 처리 할 수 있으며, 이는 일일 프로그래밍에서 일반적으로 사용됩니다! 또한 특정 오류를 처리 할 수있는 SELECT CASE 문을 확인해야합니다.
리디렉션 및 오류 처리
우리가주의를 기울여야하는 한 가지는 우리가 자주 사용하는 리디렉션 객체입니다. 페이지에 리디렉션 객체가 나타나면 오류 처리로 인해 의미가 떨어집니다. 따라서 다음과 같이 회전하기 전에 처리해야합니다.
err.number = 0이고 objconnection.errors.count = 0 인 경우
응답
Response.redirect? lt; url here>?
끝 If
코드를 더 깔끔하게 만드십시오
코드를보다 깔끔하게 만들려면 먼저 오류 처리 된 파일을 포함 파일에 배치하십시오. 이렇게하면 모든 파일에서 사용할 수 있습니다. 이것은 또한 수정하기에 편리합니다.
ON ERROR 이력서를 추가하여 프로그램 상단에서 (물론 언어 선언 후) 프로그램 상단에서 다음 문을 추가하십시오.
SQL을 실행하기 전에 오류 확인을 수행하십시오.
리디렉션을 사용하기 전에 오류 처리가 필요했습니다.
코드 상단에 파일이 포함 된 오류를 처리 할 수 있습니다.
이것은 ASP 오류 처리 방법의 내용의 끝입니다. 이 기사의 내용이 모든 사람의 연구 나 업무에 도움이되기를 바랍니다.