ASPError-Objekt | |
Das mit ASP 3.0 eingeführte integrierte Objekt ASPError ermöglicht die Anzeige ausführlicher Informationen über den zuletzt im Skript einer ASP-Seite aufgetretenen Fehler der aktuellen Sitzung. Mit seinen neun schreibgeschützten Eigenschaften bietet dieses Objekt ausführlichere Informationen über die Art und Quelle von Fehlern als das Err-Objekt in VBScript. Zur Verwendung des Objekts ASPError und seiner Eigenschaften müssen Sie GetLastError, eine neue Methode des Server-Objekts, aufrufen. Diese gibt ein ASPErrorObject zurück, dessen Eigenschaftswerte Rückschlüsse auf den zuletzt im Skript aufgetretenen Fehler zulassen: Dim objMyASPError Set objMyASPError = Server.GetLastError Wenn Sie IIS 5.0 installieren, bewirken standardmäßig alle Vorverarbeitungs-, Skript- und Laufzeitfehler im ASP-Code, dass IIS die Verarbeitung des aktuellen Skripts beendet und dessen Ausführung an eine benutzerdefinierte Fehlerseite namens Das Skript Sie können die Standardfehlerseite Im nachfolgenden Feld finden Sie eine Beschreibung der Eigenschaften, Kollektionen, Methoden und Ereignisse des Objekts ASPError. |
Anmerkungen/Fehlerbehebung | |
Um das Debugging ihrer Skripts mit dem Objekt Err in VBScript zu aktivieren, verwenden die weniger erfahrenen ASP-Entwickler häufig den folgenden Code: On Error Resume Next Diese Codezeile im Skript bewirkt, dass IIS nur bei Vorverarbeitungs- und Skriptfehlern (Syntax) die Methode Server.Transfer aufruft und die Skriptausführung an Ihr Dim intCounter For intCounter = 1 to 100 intResult = intCounter / (intCounter - 100) Next In diesem Codefragment müsste zusätzlicher Code zum Abfangen des Fehlers vor die Next-Anweisung eingefügt werden. Der Fehler, eine Division durch Null, tritt auf, sobald intCounter 100 beträgt. Das Hinzufügen solcher Zeilen zum Erkennen von Fehlern im gesamten Code ist nicht nur zeitaufwändig, sondern auch an sich fehleranfällig, da die fehlergefährdeten Zeilen schon vorab als solche identifiziert werden müssen. Aus diesem Grund und weil das Objekt ASPError mehr Informationen liefert als das Err-Objekt, sollte On Error Resume Next wenn möglich vermieden werden. Die ASPError-Objektseite Darüber hinaus könnten Sie Fehlerbenachrichtigungen mit dem Skript In den Codebeispielen zur Veranschaulichung der Eigenschaften des ASPError-Objekts kommen drei unterschiedliche Fehlergenerierungsskripts zum Einsatz. Das erste enthält einen Syntaxfehler, das zweite einen Fehler in einer Vorverarbeitungsdirektive und das dritte generiert einen Laufzeitfehler. In allen Beispielen werden dieselben drei ASP-Seiten zur Fehlergenerierung verwendet. Es ändert sich lediglich der Inhalt der benutzerdefinierten Fehlerseite **** BEGIN Error Generating Script #1 **** <HTML> <HEAD><TITLE> Error Generation Page #1 </TITLE></HEAD> <BODY> <% ' This page contains a syntax error. ' In the following For...Next loop, the keyword ' "For" is mispelled. Dim intCounter Fir intCounter = 1 to 100 %> Look everyone! I'm counting: <%=intCounter%><BR> <% Next %> </BODY> </HTML> **** END Error Generating Script #1 **** **** BEGIN Error Generating Script #2 **** <HTML> <HEAD><TITLE> Error Generation Page #2 </TITLE></HEAD> <BODY> <% ' This page contains a preprocessing error. ' The work "file" in the #INCLUDE preprocessor ' directive is mispelled: %> <!--#include fil=/headers/AdminHeader.INC --> </BODY> </HTML> **** END Error Generating Script #2 **** **** BEGIN Error Generating Script #3 **** <HTML> <HEAD><TITLE> Error Generation Page #3 </TITLE></HEAD> <BODY> <% ' This page contains a runtime error. ' In the following For...Next loop, when the ' intCounter variable gets to zero, the result ' is a divide by zero error. Dim intCounter Dim dblDivResult For intCounter = 1 to 100 dblDivResult = intCounter / (intCounter - 100) %> Look everyone! I'm dividing: <%=dblDivResult%><BR> <% Next %> </BODY> </HTML> **** END Error Generating Script #3 **** |
ASPCode | |
objASPError.ASPCode | |
Die Eigenschaft ASPCode enthält einen numerischen Code, der den ASP-spezifischen Fehler aus dem Fehlergenerierungsskript darstellt. Wenn der Fehler bei der Verarbeitung des ASP-Skripts aufgetreten ist, wird diese Eigenschaft von IIS angegeben. Die Eigenschaft ASPCode ist schreibgeschützt. |
|
Parameter | |
Keine |
|
Beispiel | |
In diesem Beispiel wird davon ausgegangen, dass der folgende Code dem benutzerdefinierten Standard-Fehlerskript **** BEGIN ASPCode Example Script **** <% ' This script demonstrates the use of the ASPCode ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the ASPCode property is " & objMyASPError.ASPCode %> **** END ASPCode Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt das obige Beispielskript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the ASPCode property is [EMPTY] Fehlergenerierungsskript Nr. 2: The value of the ASPCode property is ASP 0128 Fehlergenerierungsskript Nr. 3: The value of the ASPCode property is [EMPTY] |
|
Hinweis | |
Wie zuvor erwähnt, wird die Eigenschaft ASPCode nur angegeben, wenn der Fehler bei der Interpretation des ASP-Skripts selbst auftritt. Dies bezieht sich auf alle Vorverarbeitungsdirektiven. |
|
ASPDescription | |
objASPError.ASPDescription | |
Die Eigenschaft ASPDescription ist ein Stringwert, den IIS beim Auftreten eines ASP-Fehlers angibt. Sie liefert mehr beschreibende Informationen über die Art des aufgetretenen ASP-Fehlers als die Eigenschaft ASPCode. Ebenso wie die Eigenschaft ASPCode wird auch ASPDescription nur im Fall von Fehlern bei der Interpretation eines ASP-Skripts angegeben und nicht bei Laufzeitfehlern. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN ASPDescription Example Script **** <% ' This script demonstrates the use of the ASPDescription ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the ASPDescription property is " & _ objMyASPError.ASPDescription %> **** END ASPDescription Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt das obige ASPDescription-Skript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the ASPDescription property is [EMPTY] Fehlergenerierungsskript Nr. 2: The value of the ASPDescription property is The Include file name must be specified using either the File or Virtual attribute. Fehlergenerierungsskript Nr. 3: The value of the ASPDescription property is [EMPTY] |
|
Hinweis | |
Wie ASPCode ist auch die Eigenschaft ASPDescription nur im Fall von Fehlern bei der ASP-Interpretation nützlich. Die Eigenschaft Description des Objekts ASPError gibt fast immer dieselbe oder sogar bessere Auskunft über den zuletzt aufgetretenen Fehler. |
|
Category | |
objASPError.Category | |
Die Eigenschaft Category enthält einen String, der die Art des aufgetretenen Fehlers angibt: IIS-spezifisch, skriptsprachenspezifisch oder komponentenspezifisch. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN Category Example Script **** <% ' This script demonstrates the use of the Category ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the Category property is " & objMyASPError.Category %> **** END Category Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt dieses Skript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the Category property is Microsoft VBScript compilation Fehlergenerierungsskript Nr. 2: The value of the Category property is Active Server Pages Fehlergenerierungsskript Nr. 3: The value of the Category property is Microsoft VBScript runtime |
|
Hinweis | |
Die Eigenschaft Category ermöglicht es, den Bereich für die Fehlersuche einzuengen. |
|
Column | |
objASPError.Column | |
Die Eigenschaft Column enthält einen Long-Wert, der die Zeichenspalte angibt, in der sich das erste Zeichen des den Fehler verursachenden Codes befindet. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN Column Example Script **** <% ' This script demonstrates the use of the Column ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the Column property is " & objMyASPError.Column %> **** END Column Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt das obige Column-Skript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the Column property is 19 Fehlergenerierungsskript Nr. 2: The value of the Column property is -1 Fehlergenerierungsskript Nr. 3: The value of the Column property is -1 |
|
Hinweis | |
Die Eigenschaft Column erleichtert das Auffinden fehlerhafter Syntax im Code. Wenn es sich aber um einen ASP-spezifischen Fehler handelt oder der Bereich, in dem der Fehler entsteht, keinen syntaktisch falschen Code enthält, dann beträgt dieser Wert -1 und ist damit nicht sonderlich hilfreich. |
|
Beschreibung | |
objASPError.Description | |
Die Eigenschaft Description ist ein String, der den zuletzt aufgetretenen Fehler beschreibt. Außer im Fall von Fehlern in Bezug auf die ASP-Interpretation ist sie in der Regel beschreibender und hilfreicher als die ihr ähnliche Eigenschaft ASPDescription. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN Description Example Script **** <% ' This script demonstrates the use of the Description ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the Description property is " & objMyASPError.Description %> **** END Description Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt das obige Description-Skript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the Description property is Expected end of statement Fehlergenerierungsskript Nr. 2: The value of the Description property is Missing File or Virtual attribute Fehlergenerierungsskript Nr. 3: The value of the Description property is Division by zero |
|
Hinweis | |
Der Wert der Eigenschaft Description ist normalerweise beschreibender als die übrigen Eigenschaften des ASPError-Objekts. Wie aber alle anderen Eigenschaften auch, hat sie für die Endbenutzer Ihrer ASP-Anwendung nur einen sehr geringen Nutzen. Es ist aber wichtig, dass angezeigte Informationen über die Ursachen von Fehlern den Benutzern auch wirklich weiterhelfen. Am Ende dieses Kapitels finden Sie ein Beispiel für ein benutzerdefiniertes |
|
File | |
objASPError.File | |
Die Eigenschaft File enthält den vollständigen Pfad zur Datei mit dem Code, der den Fehler verursacht hat. Der Dateiname enthält den vollständigen Pfad der Datei in Relation zum Web-Stammordner. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN File Example Script **** <% ' This script demonstrates the use of the File ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the File property is " & objMyASPError.File %> **** END File Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt das obige File-Skript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the File property is /errorgen1.asp Fehlergenerierungsskript Nr. 2: The value of the File property is /errorgen2.asp Fehlergenerierungsskript Nr. 3: The value of the File property is /errorgen3.asp |
|
Hinweis | |
Beachten Sie, dass der Dateipfad nicht etwa vom Stammordner der aktuellen Anwendung, sondern von demjenigen des Webservers ausgeht. |
|
Line | |
objASPError.Line | |
Die Eigenschaft Line ist ein Long-Wert, der die Nummer der Zeile angibt, in der sich der den Fehler verursachende Code befindet. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN Line Example Script **** <% ' This script demonstrates the use of the Line ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the Line property is " & objMyASPError.Line %> **** END Line Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt das obige Line-Skript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the Line property is 11 Fehlergenerierungsskript Nr. 2: The value of the Line property is 11 Fehlergenerierungsskript Nr. 3: The value of the Line property is 14 |
|
Hinweis | |
Die Zeilenzählung beginnt mit 1 bei der ersten Zeile des ASP-Codes. |
|
Number | |
objASPError.Number | |
Die Eigenschaft Number enthält einen Long-Wert, der einen von einer COM-Komponente zurückgegebenen Fehlercode darstellt. Dieser Long-Wert ist ein COM-Standardfehlercode. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN Number Example Script **** <% ' This script demonstrates the use of the Number ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the Number property is " & objMyASPError.Number %> **** END Number Example Script **** Bei Ausführung der Fehlergenerierungsskripts werden die folgenden drei Antworten erzeugt: Fehlergenerierungsskript Nr. 1: The value of the Number property is -2146827263 Fehlergenerierungsskript Nr. 2: The value of the Number property is -2147467259 Fehlergenerierungsskript Nr. 3: The value of the Number property is -2146828277 |
|
Hinweis | |
Keine |
|
Source | |
objASPError.Source | |
Die Eigenschaft Source ist ein String mit der Codezeile, die den letzten Fehler verursacht hat, sofern dieser Code einen Syntaxfehler enthält. |
|
Parameter | |
Keine |
|
Beispiel | |
Dieses Beispiel beruht auf den am Ende des Abschnitts "Anmerkungen/Fehlerbehebung“ aufgeführten Fehlergenerierungsskripts. Dabei wird vorausgesetzt, dass dem benutzerdefinierten Standardfehlerskript **** BEGIN Source Example Script **** <% ' This script demonstrates the use of the Source ' property of the ASPError object. Dim objMyASPError Set objMyASPError = Server.GetLastError( ) Response.Write "The value of the Source property is " & objMyASPError.Source %> **** END Source Example Script **** Wenn die Fehlergenerierungsskripts ausgeführt werden, erzeugt das obige Source-Skript die folgenden drei Antworten: Fehlergenerierungsskript Nr. 1: The value of the Source property is Fir intCounter = 1 to 100 Fehlergenerierungsskript Nr. 2: The value of the Source property is [EMPTY] Fehlergenerierungsskript Nr. 3: The value of the Source property is [EMPTY] |
|
Hinweis | |
Wie bereits erwähnt, ist die Eigenschaft Source nur bei Fehlern in Bezug auf die Syntax nützlich. Anderenfalls bleibt diese Eigenschaft leer. |
|