Empfohlen: Verwenden Sie ASP, um Websites zu entwickeln Im Allgemeinen nutzen groß angelegte Websites immer weniger ASP für die Architektur, aber ASP nimmt immer noch einen großen Marktumfang auf kleinen und mittelgroßen Geschäftsstandorten ein. ASP wird von kleinen und mittleren Standortadministratoren für seinen einfachen, kurzen Entwicklungszyklus und einfache Wartung bevorzugt. Soweit ich weiß
7.4.2 VBScript -Fehlerbehandlung
In VBScript kann der Skript -Interpreter gemacht werden, um keine Fehler zu behandeln, die er findet, und die nächste Anweisung mit der Nächsten Anweisung für Fehlerbehebung weiter ausführen. Sobald diese Aussage verarbeitet wurde, wird die Skript -Engine das nachfolgende Programm weiter ausführen, ohne Fehler zu zahlen, die gefunden wurden. Dieser Prozess gilt jedoch nur für Umgebungen, in denen Aussagen nacheinander ausgeführt werden, und mit anderen Worten nicht für verschachtelte Funktionen oder Unterprogramme.
1. Verwenden Sie die nächste Anweisung für Fehlerbehebung
Wenn in einer Unterroutine ein Fehler auftritt, wird der Fehler an die Umgebung übergeben, in der er aufgerufen wird. Dieser Vorgang wird wiederholt, bis die Umgebung, die in der nächsten Anweisung für Fehlerbehebung ausgeführt wird, oder der Standard -Skript -Fehlerhandler gefunden wird und der Fehler an den ASP übergeben wird und IIS die Standardfehlerseite anzeigt.
Diese falsche Anrufkette bedeutet, dass Funktionen und Unterprogramme erstellt werden können, die verhindern, dass das Programm das Laufen des Programms nicht mehr läuft. Wenn eine nächste Anweisung für Fehlerbehebung am Anfang des Unterroutine angegeben wird, werden alle Laufzeitfehler den Lauf des Unterprogramms abbrechen. Das Programm, das die Unterroutine aufruft, wird jedoch weiter ausgeführt, ohne dass die Webseite gestoppt wird.
Wenn Sie beispielsweise eine Zeichenfolge in eine Datei schreiben müssen, können Sie über eine unabhängige Funktion auf die Datei zugreifen, um zu verhindern, dass Fehler das Laufen des gesamten Programms unterbrechen:
'Erstellen Sie eine Datei namens StrFileName und überschreiben Sie alle vorhandenen mit diesem Namen
'und schreibt StrContent in sie und schließt die Datei ab
'Gibt true zurück, wenn es erfolgreich ist oder bei einem Fehler falsch ist
Funktion writeNewFile (Strfilename, StrContent)
Beim Nächsten Fehlerbehebung "Schalten Sie den Standardfehlerbehandler aus
WitenewFile = Flase 'Standard -Rückgabewert der Funktion
Setzen Sie OBJFSO = CreateObject (Scripting.FilesSystemObject)
Wenn err.number = 0 dann objFile = objfso.createTextfile (strFileName, true) festlegen
Wenn err.number = 0 dann objFile.writeLine StrContent
Wenn err.number = 0 dann objFile.close
Wenn err.number = 0 dann WriteNewFile = true
Endfunktion
Beachten Sie, dass das obige Programm die Nummer des ERR -Objekts von VBScript überprüft, bevor Sie versuchen, jede Programmanweisung zu verarbeiten. Wenn dieser Wert 0 beträgt (es ist noch kein Fehler aufgetreten), kann der Prozess der Einreichung und Erstellung der Datei fortgesetzt werden. Wenn der Fehler jedoch auftritt, setzt die Skript -Engine den Wert der Eigenschaft des ERR -Objekts und verarbeitet die nächste Zeile weiter.
Solange es normal ausgeführt werden kann, ohne einen Fehler zu verursachen, wird der Rückgabewert der Funktion auf true eingestellt. Andernfalls gibt die Funktion false zurück. In der Programmierung können Sie diese Funktion verwenden und nach dem Testen andere Aktionen ausführen.
Hier ist ein einfaches Beispiel. Wir möchten eine separate Funktion für den ersten Teil der Aufgabe verwenden, damit wir genauer ermitteln können, wo der Fehler auftritt. Dies erleichtert das Lesen des Codes beim Debuggen. Im Hauptprogramm der Seite können drei separate Funktionen aufgerufen werden.
Wenn CreateNewFile (Strfilename), erstellen Sie die neue Datei
Response.write neue Datei erfolgreich erstellt <br>
Wenn WriteContent (StrContent), schreiben Sie den Inhalt
Antwort.Write -Inhalt, geschrieben in Datei <br>
Anders
Antwort.Write -Fehler: Nicht in die Datei schreiben
Ende wenn
Wenn CloseFile (Strafilename) dann
Antwort.Write -Datei geschlossen <br>
Anders
Antwort.Write -Fehler: Die Datei nicht schließen <br>
Ende wenn
Anders
Antwort.Write -Fehler: Die neue Datei wurde nicht erstellt <br>
Ende funciotn
2. Verwenden Sie bei Fehler GOTO 0
In ASP 2.0 (obwohl keine Dokumentation) und ASP 3.0, kann das Standardfehlerbehandlungsverhalten auch mit der Anweisung für Fehler GOTO 0 wiederhergestellt werden. Nachdem diese Anweisung ausgeführt wurde, führt der Laufzeitfehler zu einem Standardfehlerbehandlung und überprüft jedes verschachtelte Programm in der Umgebungskette bis zum Hauptseitencode. Wenn es keine andere Umgebung gibt, um die Standardfehlerbehandlung auszuschalten, wird die Ausführung der Webseite gestoppt und die IIS -Standardfehlerseite angezeigt.
3.. VBScript -ERR -Objekt
Überprüfen Sie, ob der Fehler aufgetreten ist, indem der Fehler aufgetreten ist, indem die Nummerneigenschaft des VBScript -ERR -Objekts aufgetreten ist. Das ERR -Objekt speichert Informationen zu Laufzeitfehlern. Die Tabellen 7-3 und 7-4 geben die vom VBScript-ERR-Objekt bereitgestellten Methoden und Eigenschaften an.
Tabelle 7-3 Methoden des VBScript-ERR-Objekts
Verfahren
veranschaulichen
Klar
Alle aktuellen ERR -Objekteinstellungen löschen
Erheben
Ein Laufzeitfehler trat auf
Tabelle 7-4 Eigenschaften des VBScript-ERR-Objekts
Eigentum
veranschaulichen
Beschreibung
Setzen oder geben Sie eine Zeichenfolge ein, die den Fehler beschreibt
Nummer
(Standard) Set oder zurücksenden den angegebenen Fehlerwert oder zurücksend
Quelle
Setzen oder geben Sie den Namen des Objekts ein, das den Fehler generiert hat
Verwenden Sie diese Eigenschaften, um zu überprüfen, welcher Fehler auftritt. Beispielsweise können unterschiedliche Maßnahmen basierend auf der Fehlernummer ergriffen werden, oder die Fehlerinformationen können dem Benutzer mit den Eigenschaftswerten von Quelle und Beschreibung bereitgestellt oder in eine Datei übertragen werden.
Sie können auch das ERR -Objekt verwenden, um einen Fehler zu generieren. Warum tun diese Dinge? Da ich manchmal eine angepasste Fehlermeldung an den Benutzer senden möchte. Die Eigenschaften des ERR -Objekts können auf jeden gewünschten Wert eingestellt werden. Rufen Sie dann die Erhöhungsmethode auf, um diesen Fehler zu generieren. Dies stoppt das Programm und überträgt den Fehler entlang der Anrufkette zurück.
Das folgende Beispiel zeigt, wie Fehler beim Lesen einer Textdatei auf der Serverplatte behandelt werden. Beachten Sie, wie die konstante VBOBJeCterror verwendet wird, um festzustellen, dass die ausgewählte Fehlernummer nicht mit einer vorhandenen Fehlernummer verwechselt wird. Durch Hinzufügen einer ausgewählten Fehlernummer zu dieser Konstante ist es garantiert, dass sie nicht mit vordefinierten Fehlern verwechselt werden.
Functoin Redefile (strFileName) 'gibt den Inhalt als Zeichenfolge zurück
Bei der nächsten Fehleraufnahme als nächstes
Redefisfile = 'Standard -Rückgabewert der Funktion
Setzen Sie OBJFSO = CreateObject (Scripting.FilesSystemObject)
SET OBJFILE = OBJFSO.OPENTEXTFILE (strFileName, Forreading)
Wählen Sie Case err.number
Fall 0 'ok, ergreifen Sie keine Maßnahmen
Fall 50, 53 'Standarddatei oder Pfad wurden keine Fehler gefunden
'Erstellen Sie benutzerdefinierte Fehlerwerte und erhöhen
Interrnumber = vBobjeCterror 1073 'benutzerdefinierte Fehlernummer
Strerrdescript
Teilen: Wie kann ich ASP verwenden, um die Adresse des echten IP des Kunden zu erhalten? Um die reale IP -Adresse des Clients über den Proxy -Server zu erhalten, müssen Sie Request.Servervariables (http_x_forwarded_for) verwenden, um sie zu lesen. Es ist jedoch zu beachten, dass nicht jeder Proxy -Server Request.Servervariab verwenden kann