권장 : ASP에서 FSO의 마법 특징을 깊이 이해 ASP에서 FSO는 파일 시스템 객체 인 파일 시스템 객체를 의미합니다. 조작하려는 컴퓨터 파일 시스템은 웹 서버에있는 것을 의미합니다. 따라서 이에 대한 적절한 권한이 있는지 확인하십시오. 이상적으로는 자신의 기계를 사용할 수 있습니다
7.1.2 시맨틱 또는 런타임 오류구문 오류의 검색 및 처리는 성가 시지만, 프로그래밍에서 실제로 흥미 진진한 다른 유형의 오류 (시맨틱 오류 또는 런타임 오류가 발생합니다. 이 유형의 오류는 스크립트 코드 또는 기타 프로그램을 실행할 때만 발견됩니다. 다시 말해, 통역사 또는 컴파일러가 완전하고 유효한 코드를 해석하거나 컴파일했으며 실행 중에 오류가 발생했습니다. 런타임 오류 패스라는 용어는 시맨틱 오류의 결과를 나타냅니다. 즉, 그러한 오류는 코드의 의미에 존재하며 코드가 실행될 때 볼 수 있습니다.
이 차이는 프로그램 컴파일러 또는 통역사가 프로그램 코드를 처리하기 전에 내부 코드에 대한 설명을 설정하고 여러 구조의 시작 및 끝의 일치를 포함하여 각 구조에 포함 된 내용을 나타내고 문장을 실행하는 방법을 알기 위해 각 문장을 분석해야한다는 사실과 비슷합니다. 예를 들어, if… else… End… 구조가있는 경우, 통역사 또는 컴파일러의 첫 번째 단계는 어떤 진술이 당시에 있고 다른 부분에 있는지 분석하는 것입니다. 이 단계의 목적은 구조의 IF 조건을 테스트 한 후 실행할 지점을 결정하는 것입니다.
컴파일러 (Visual Basic 및 C와 같은 프로그래밍 언어에서 볼 수있는 것과 같은)와 인터프리터 (예 : VBScript 및 JSCRIP와 같은 스크립팅 언어에 대한 통역사 등)의 실질적인 차이점은 컴파일러가 프로그램 코드를 실행하려고 시도하지 않지만 소스 프로그램의 두 전처리 후에는 이진 지침 또는 Symbolic Code a .DLL 파일을 형성한다는 것입니다. 통역사는 코드 파일이 포함되어 있지 않지만 런타임에 단계별로 실행됩니다.
1. 실행이 중지되는 오류
프로그램에 시맨틱 오류가 포함 된 경우 일반적으로 런타임에 프롬프트를 얻을 수 있습니다. 운이 좋으면 오류가 발생하면 프로그램이 중지되어 오류가 어디에 있는지 쉽게 알 수 있습니다. 예를 들어, 다음 프로그램은 6 개의 요소가있는 배열을 정의합니다.
<%
Dim Arrvalues (5) '6 개 요소를 유지하려면 0에서 5까지 색인
Arrvalues (6) = Whoops, 오류가 발생했습니다
%>
첨자로 요소 값을 6으로 읽거나 설정하려고하면 그림 7-7과 같이 런타임 오류가 발생할 수 있습니다.
그림 7-7 프로그램 실행 결과 6
여기서 오류 유형은 구문 오류가 아닌 런타임 (의미와 동일) 오류입니다. 오류 메시지는 오류가있는 행의 수와 오류에 대한 설명을 보여 주므로 해당 오류를 더 쉽게 찾을 수 있습니다. 그러나 이것은 간단한 예입니다.보다 복잡한 프로그램 코드에서는 일부 값을 가로 지르는 일부 프로그램 에서이 오류가 발생할 수 있습니다. 아래 그림과 같이 :
<%
Dim Arrvalues (5) '6 가지 요소를 보유합니다
intloop = 0, intlistcount의 경우 일부 목록의 항목 수
arrvalues (intloop) = request.form (selectedItems) (intlistCount)
다음
%>
이 경우 너무 많은 목록 항목을 얻었거나 배열의 인덱스가 충분하지 않을 수 있습니다. 코드 요구 사항에 따라 어떤 오류가 있는지 결정할 수 있으며 배열 크기를 늘려이 오류를 해결할 수 있습니다.
<%
11 개의 요소를 유지하기 위해 Arrvalues (10)를 희미하게합니다
intloop = 0 to intlistCount의 경우 '일부 목록 int int int int int
arrvalues (intloop) = request.form (selectedItems) (intlistCount)
다음
%>
또는 오류 처리를 해결하기 위해 루프 매개 변수를 설정하십시오.
<%
Dim Arrvalues (5) '6 가지 요소를 보유합니다
intarraymax = intlistcount
intarraymax> 5 인 경우 intarraymax = 5
intloop = 0, intarraymax '의 경우 처음 6 개 항목 만 추가하십시오.
arrvalues (intloop) = request.form (selectedItems) (intlistCount)
다음
%>
다른 런타임 오류는 프로위 오류가 있거나 구성 요소가 올바르게 설치되지 않기 때문에 일부 구성 요소 나 객체의 인스턴스화와 같은 웹 페이지가 실행되는 것을 중지 할 수 있습니다. 이 경우 결과는 항상 ActiveX가 객체 오류 메시지를 생성 할 수 없으며 서버에 대한 호출의 줄 번호를 제공합니다.
2. 오류 생성 오류 결과
위에서 언급했듯이 프로그램 코드가 중지되는 런타임 오류가 발생하면 운이 좋을 수 있습니다. 그러나 또 다른 상황은 프로그램이 아무 일도 일어나지 않은 것처럼 잘 실행할 수 있고 결국 잘못된 결과를 낳을 수 있다는 것입니다. 이것은 당신이 무언가 잘못을 알지 못하기 때문에 발견하고 해결하는 가장 어려운 실수입니다. 예를 들어, 사용자의 생일을 날짜 값으로 취하고 날짜 요소를 별도로 표시하는 웹 페이지가 있다고 가정합니다 (데이터베이스에 세 개의 항목으로 추가 할 수 있음).
<%
'요청에서 값을 얻고 표시하십시오.
datbirthdate = request.form (BirthDate)
응답. 입력 한 값은 다음과 같습니다. & datbirthdate & <p>
'개별 날짜 요소를 얻으십시오
intday = day (datbirthdate)
intmonth = month (datbirthdate)
intyear = 년 (datbirthdate)
'그리고 그들을 표시하십시오
답변 날 : & cstr (intday) & <br>
응답 월 : & cstr (intmonth) & <br>
응답 연도 : & cstr (intyear) & <br>
%>
그림 7-8은 모든 것이 괜찮은 것처럼 미국 날짜 스타일의 달/일/년에 표시되는 결과입니다.
그림 7-8 생일을 보여주는 화면
그러나 불법 날짜를 입력하거나 입력 텍스트 상자를 비워두면 그림 7-9와 같이 런타임 오류가 발생합니다.
그림 7-9 오류 프롬프트 화면
(1) JScript 전문가가 아닌 경우
오류가 발생하는 이유를 신속하게 발견 할 수 있기 때문에 오류를 찾을 때 큰 문제가 아닙니다. 웹 페이지가 실행을 중단한다는 사실은 오류를 추적하는 데 도움이됩니다. 그러나 예상치 못한 오류가 발생할 수 있습니다. 예를 들어, JScript의 프로그램 코드를 다시 작성합니다. JScript 전문가가 아니기 때문에 약간의 사소한 오류가 나타납니다.
<%
// 요청에서 값을 가져 와서 표시합니다.
var datbirthdate = new 날짜 (request.form (birthdate));
response.write (입력 한 값은 : DatbirthDate <P>);
// 개별 날짜 요소를 얻습니다
intday = datbirthdate.getday ();
intmonth = datbirthdate.getmonth ();
intyear = datbirthdate.getyear ();
// 표시하십시오
response.write (day : intday.tostring () <br>);
response.write (월 : intmonth.toString () &
공유 : ASP를 사용하여 MP3 트랙 정보의 전체 작동 전략을 구현하십시오. MP3의 ID3 태그에 대해 간단히 이야기 해 봅시다. 주로이 작업을 작동하는 데 사용되기 때문입니다. MP3는 오늘 우리가 처음 본 것이 아니 었습니다. 가수, 시대, 컬렉션 등 정보와 예/아니오와 같은 일부 간단한 매개 변수 만 있으므로 개인인지 저작권이 있는지 여부를 나타냅니다.