권장 : ASP 자습서 : 처음으로 ASP 스크립팅 프로그램 학습 스크립팅 언어를 배우는 이유는 무엇입니까? ASP와 스크립팅 언어의 관계는 무엇입니까? 먼저, ASP가 소중한 것에 대해 이야기합시다. ASP
ASP 오류 처리
ASP는 너무 간단하여 많은 개발자가 오류 처리에 대해 생각하지 않습니다. 오류 처리로 응용 프로그램이 더 합리적 일 수 있습니다. ASP로 작성된 많은 상업용 웹 사이트를 보았는데 대부분 오류 처리를 무시합니다.
잘못된 유형
세 가지 주요 오류 유형이 있습니다.
컴파일 오류 :
이러한 종류의 오류는 일반적으로 코드 구문 문제로 인해 발생합니다. 컴파일 오류로 인해 동사 ASP가 실행 중지 중지되었습니다.
오류를 실행하십시오
이 오류는 ASP를 실행할 준비가되었을 때 발생합니다. 예를 들어 : 값을 변수에 할당하려고하지만 변수가 허용하는 범위를 벗어납니다.
논리적 오류
논리적 오류는 감지하기가 가장 어렵습니다. 이러한 종류의 오류는 종종 컴퓨터에서 발견 할 수없는 구조적 오류입니다. 이를 위해서는 코드를 철저히 확인해야합니다.
컴파일 오류는 일반적으로 논리적 오류와 함께 발생하며 일반적으로 표시 될 수 있기 때문에 걱정하는 것은 작동 오류입니다. 그것은 모두 ASP의 작동을 종료하고 사용자에게 매우 비우호적 인 텍스트를 남깁니다.
그래서 우리는 어떻게 작동 오류를 처리합니까! ? 먼저 살펴 보겠습니다. ASP가 제공 한 유일한 오류 명령 --- 오류 이력서 다음에 다음 (초보자에게 오류 이력서에만 있음을 상기시켜주고 싶습니다.
ON ERROR RESUME NEXT 문을 사용하지 않으면 모든 실행 실수 오류가 발생하면 치명적입니다. 그렇다면 오류 코드가 사용자에게 표시되고 ASP 프로그램도 중지됩니다.
오류 코드는 다음과 같습니다.
| 다음은 인용 된 내용입니다. ODBC 드라이버 오류 80004005 용 Microsoft OLE DB 제공 업체 [Microsoft] [ODBC 드라이버 관리자] 데이터 소스 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다. /test.asp, 60 행 |
프로그램 상단의 ON ERROR 이력서 다음 문을 사용하면 모든 오류가 무시되고 프로그램이 다음 문을 자동으로 실행합니다. 이러한 방식으로 프로그램은 완전히 실행되며 오류가 발생한 후에 사용자가 오류 메시지가 표시되지 않습니다. 그러나 이런 식으로도 단점이 있습니다. 즉, 프로그램이 상상할 수 있듯이 실행되지 않으면 무엇이 잘못되었는지 알아 내기가 어려울 것이므로 필요한 경우 오류를 처리해야합니다.
처리 오류
ASP에서 오류를 처리하는 가장 좋은 방법은 오류를 처리하기 위해 프로그램 하단에 코드를 넣는 것입니다. 또한 모든 ASP 프로그램에서 버퍼를 사용하는 것이 좋습니다. 이러한 방식으로 오류가 발생하면 페이지가 중지되고 페이지 내용이 지워 지므로 사용자가 오류 메시지가 표시되지 않으며 귀하에 대한 불만이 줄어 듭니다! 예는 다음과 같습니다.
| 다음은 인용 된 내용입니다. <% '버퍼를 true로 설정하십시오 응답 .buffer = true '오류 처리를 시작하십시오 다음에 오류가 재개됩니다 %> <% '오류 처리 err.number <> 0 인 경우 '페이지를 지 웁니다 응답 '사용자에게 오류 메시지를 표시합니다 %> <html> <헤드> <제목> </title> </head> <바디 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를 선택하십시오 사례 8 '잘못된 번호를 지정하십시오 '사용자 지정 오류 문제를 해결하십시오 다른 경우 '일반적인 오류 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.Rect URL은 여기에 있습니다 끝 If |
코드를 더 깔끔하게 만드십시오
코드를보다 깔끔하게 만들려면 먼저 오류 처리 된 파일을 포함 파일에 배치하십시오. 이렇게하면 모든 파일에서 사용할 수 있습니다. 이것은 또한 수정하기에 편리합니다.
ON ERROR 이력서를 추가하여 프로그램 상단에서 (물론 언어 선언 후) 프로그램 상단에서 다음 문을 추가하십시오.
SQL을 실행하기 전에 오류 확인을 수행하십시오.
리디렉션을 사용하기 전에 오류 처리가 필요했습니다.
코드 상단에 파일이 포함 된 오류를 처리 할 수 있습니다.
공유 : ASP 프로그램은 매개 변수 값을 저장하는 페이지 매김 함수를 실현합니다. 다음은 참조 된 내용입니다 : <%'' '' '콜 example'dim int_rpp, int_start, int_shownumberli