ASP ist so einfach, dass viele Entwickler nicht über die Fehlerbehandlung nachdenken. Die Fehlerbehandlung kann Ihre Anwendung logischer machen. Ich habe viele kommerzielle Websites gesehen, die in ASP geschrieben sind, und die meisten ignorieren die Fehlerbehandlung. Falscher Typ.
Es gibt drei Haupttypen von Fehlern:
1. Kompilierungsfehler:
Diese Art von Fehler tritt normalerweise aufgrund von Syntaxproblemen im Code auf. ASP wurde aufgrund eines Kompilierungsfehlers nicht mehr ausgeführt.
2. Ausführungsfehler:
Dieser Fehler tritt auf, wenn Sie die Ausführung von ASP vorbereiten. Beispiel: Wenn Sie versuchen, einer Variablen einen Wert zuzuweisen, dieser jedoch außerhalb des zulässigen Bereichs der Variablen liegt.
3. Logikfehler:
Logische Fehler sind am schwierigsten zu erkennen. Dieser Fehler ist oft ein struktureller Fehler, der von Computern nicht gefunden werden kann. Dies erfordert, dass wir unseren Code von oben bis unten überprüfen.
Da Kompilierungsfehler im Allgemeinen zusammen mit logischen Fehlern auftreten und normalerweise angezeigt werden können, kümmern wir uns nur um Ausführungsfehler. Das alles beendet die Ausführung von ASP und hinterlässt eine Menge sehr unfreundlichen Texts für den Benutzer. Wie gehen wir also mit Laufzeitfehlern um?
Fehlertyp:
ADODB.Field (0x800A0BCD)
Entweder ist BOF oder EOF TRUE, oder der aktuelle Datensatz wurde gelöscht und der erforderliche Vorgang erfordert einen aktuellen Datensatz.
Grund: Als Sie mit SQL nach Datensätzen in der Datenbank suchten, war das Suchergebnis leer und Sie haben die Situation leerer Datensätze nicht behandelt.
Lösung: 1. Wenn Sie nicht glauben, dass das Suchergebnis leer ist, sollten Sie überlegen, ob Ihre SQL-Anweisung korrekt ist. 2. Wenn sie tatsächlich leer ist, sollten Sie „if rs.eof then“ oder „do while“ hinzufügen not rs.eof „Anweisungen wie „“ werden verwendet, um die EOF-Situation zu handhaben.
Fehlertyp:
(0×80020009)
Es kam zu einem Unfall.
Grund: Bei der Suche nach Datenbankeinträgen mit SQL war das Suchergebnis leer und Sie haben im nachfolgenden Code Datensätze wie rs("aa") aufgerufen.
Lösung: Entweder das Gleiche wie oben, plus die Beurteilung und Verarbeitung von rs.eof, oder Ihre SQL-Anweisung ist falsch, was dazu führt, dass der Datensatz nicht gefunden wird und der Datensatz von rs("aa") später nicht mehr verwendet werden kann.
Fehlertyp:
Aktive Serverseiten, ASP 0126 (0×80004005)
Die enthaltene Datei „xxx.asp“ wurde nicht gefunden.
Grund: Wie in der Fehlermeldung angegeben, existiert diese Include-Datei nicht.
Lösung: Wenn Sie sicher sind, dass diese Datei existiert, ist Ihr Pfad falsch angegeben. Beispielsweise sollte der Pfad relativ zum Stammverzeichnis der Website inc/xxx.asp lauten, dann sollte inc/xxx.asp in include geschrieben werden , und nicht nur xxx.asp. Anhang: Die Art und Weise, include zu schreiben, ist:
Fehlertyp:
Microsoft OLE DB-Anbieter für ODBC-Treiber (0×80004005)
[Microsoft][ODBC Microsoft Access Driver] Der Vorgang muss eine aktualisierbare Abfrage verwenden.
Grund: Dies kommt sehr häufig auf XP-Servern vor und ist ein Serverkonfigurationsproblem oder ein Problem mit Benutzerberechtigungen.
Lösung: Wenn der Fehler nur beim Debuggen auf diesem Computer auftritt, klicken Sie mit der rechten Maustaste auf den Ordner, in dem sich die Website befindet, klicken Sie auf „Freigabe und Sicherheit ...“, klicken Sie unter „Sicherheit“ auf „Hinzufügen ...“, schreiben Sie alle und aktivieren Sie dies Die Berechtigungen des Benutzers sind alle, d. h. alle außer der ersten werden überprüft. Nach der Bestätigung wird sie aktualisiert und kann verwendet werden. (Hinweis: Wenn Sie die Option „Sicherheit“ nicht finden können, klicken Sie in einem beliebigen Ordner auf „Extras“, dann auf „Ordneroptionen“ – „Ansicht“ und deaktivieren Sie die Spalte „Einfache Dateifreigabe verwenden“. Kann)
Fehlertyp:
Microsoft VBScript-Compilerfehler (0x800A0401)
Erklärung nicht beendet
Grund: Syntaxfehler.
Lösung: Überprüfen Sie die vom System angezeigten Zeilen. Wenn die Eingabeaufforderung zufällig die letzte Zeile dieser Seite ist, ist es sehr wahrscheinlich, dass die if-Anweisung vergessen hat, „end if“ zu schreiben, und die select-Anweisung vergessen hat, „end select“ zu schreiben. Kurz gesagt, es gibt kein Ende, wo Ende ist benötigt wird, was dazu führt, dass der Server es nicht findet. Am Ende der Anweisung muss der Fehler in der letzten Zeile angezeigt werden.
Fehlertyp:
Microsoft JET-Datenbankmodul (0x80040E10)
Für mindestens einen Parameter ist kein Wert angegeben.
Grund: Beim Schreiben von SQL-Anweisungen rufen wir häufig einige Parameter auf, und es ist möglich, dass einem dieser Parameter kein Wert zugewiesen wurde.
Lösung: Überprüfen Sie, ob der Wert jedes Parameters tatsächlich übergeben wird. Es ist sehr wahrscheinlich, dass einige Parameter tatsächlich „“ sind. Natürlich ist es nicht möglich, die Datenbank mit solchen Parametern zu indizieren.
Fehlertyp:
Microsoft JET-Datenbankmodul (0x80040E37)
Die Microsoft Jet-Datenbank-Engine kann die Eingabetabelle oder Abfrage „AA“ nicht finden. Stellen Sie fest, ob es existiert und ob sein Name richtig geschrieben ist.
Grund: Diese Tabelle existiert nicht.
Lösung: Möglicherweise haben Sie den falschen Tabellennamen eingegeben oder eine Verbindung zur falschen Datenbank hergestellt? Überprüfen Sie es noch einmal sorgfältig!
Fehlertyp:
Microsoft VBScript-Laufzeitfehler (0x800A000D)
Typkonflikt: /'[string: ""]/"
Grund: Der Typ Ihrer Variablen ist ein String, Sie verwenden ihn jedoch als Zahl oder als anderen Typ.
Lösung: Wenn Sie beispielsweise eine numerische Variable benötigen, um mathematische Operationen wie i=i+1 zu berechnen, sollten Sie cint (Variablenname) für die Variable verwenden, um die Konvertierung in einen numerischen Typ zu erzwingen. Der Vergleich zwischen den beiden Variablen muss ebenfalls erfolgen vom gleichen Typ, also muss es auch konvertiert werden, die Methode ist die gleiche wie oben.
Fehlertyp:
Microsoft JET-Datenbankmodul (0x80040E07)
Datentypkonflikt im Standardausdruck.
Grund: Im Allgemeinen tritt beim Schreiben von SQL-Anweisungen ein Fehler auf, d. h. numerische und String-Variablen werden verwechselt.
Lösung: Versuchen Sie, die einfachen Anführungszeichen aus den Variablen in SQL zu entfernen, die „“ hinzugefügt haben, oder „“ zu den Variablen hinzuzufügen, die ursprünglich als Zahlen gedacht waren, und überprüfen Sie dann die Auswirkung.
Fehlertyp:
Microsoft VBScript-Ausführungsfehler (0x800A01A8)
Fehlendes Objekt:"
Grund: Es ist sehr wahrscheinlich, dass Sie das RS-Objekt nicht definiert haben.
Lösung: Vergessen Sie nicht, set rs=server.CreateObject("adodb.recordset") zu schreiben, damit Sie das Objekt definieren können, oder verwenden Sie diese Schreibmethode nicht, sondern verwenden Sie einfach conn.execute("SQL"). , was viel bequemer ist und keine Notwendigkeit besteht, Objektprobleme zu berücksichtigen.
Fehlertyp:
Microsoft VBScript-Laufzeitfehler (0x800A005E)
Ungültige Verwendung Null: „Ersetzen“
Grund: Die ungültige Verwendung von Funktionen kommt häufig vor, einschließlich Split usw. Der Grund ist relativ einfach, da der Inhalt Ihres Ersetzens leer ist.
Lösung: Fügen Sie am besten ein IF hinzu, um zu prüfen, ob der Inhalt, den Sie ersetzen möchten, leer ist.
Microsoft VBScript-Compiler-Fehler Fehler „800a03f6“
Der ODBC-Treiber unterstützt die erforderliche Eigenschaft nicht.
Grund: Es kann daran liegen, dass in der SQL-Anweisung kein Feldname vorkommt. Normalerweise ist der Feldname oder das SQL-Schlüsselwort falsch geschrieben. Es ist auch möglich, dass die von SQL zu öffnende Tabelle exklusiv geöffnet wurde.
Lösung: Überprüfen Sie jeden Feldnamen und jedes Schlüsselwort, das in der SQL-Anweisung erscheint
Fehler „80004005“ des Microsoft OLE DB-Anbieters für ODBC-Treiber
Der Benutzer „Admin“ auf der Maschine „HDZC-3JQSKBWO02“ verfügt über eine exklusive Sperre für die Datentabelle „order_detail“.
Grund: Die von SQL benötigte Tabelle wird durch Zugriff in Tabellendesignform geöffnet
Lösung: Tischdesign ausschalten
Microsoft VBScript-Compiler-Fehler Fehler „800a03f6“
Der Artikel wurde in der Sammlung, die dem erforderlichen Namen oder der erforderlichen Ordnungsnummer entspricht, nicht gefunden.
Grund: In der SQL-Anweisung erscheint kein Feldname. Im Allgemeinen liegt ein Fehler beim Schreiben des Feldnamens oder des SQL-Schlüsselworts vor.
Lösung: Überprüfen Sie jeden Feldnamen, der in der SQL-Anweisung erscheint
ADODB.Recordset-Fehler „800a0e78“
Während das Objekt geschlossen ist, sind keine Vorgänge zulässig.
Grund: rs.close wurde verwendet, um das rs-Objekt vor der Anweisung rs.open sql,conn,3,3 zu schließen.
Lösung: Entfernen Sie das vorherige rs.close
Fehler „80040e14“ des Microsoft OLE DB-Anbieters für ODBC-Treiber
[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) im Abfrageausdruck „oid form classtree where oid = 25“.
Grund: In der SQL-Anweisung liegt ein illegal geschriebener englischer Schlüsselwort- oder Unterabsatzfehler vor.
Lösung: Geben Sie die SQL-Anweisung ein und vergleichen Sie sie dann Wort für Wort, um die Schreibfehler herauszufinden.
Der Vorgang erfordert eine aktualisierbare Abfrage
Antwort: Überprüfen Sie, ob die Bibliotheksdatei schreibgeschützt ist.
Antwort 2: Der sortierte (ordnen nach) Datensatz (rs) erlaubt keine Aktualisierungsvorgänge (rs.update)
3219 Vorgang für diesen Inhalt nicht zulässig
Antwort 3: Ob die Datenbankfeldeigenschaften so eingestellt sind, dass das Einfügen von Nullwerten möglich ist.
adErrInvalidArgument 3001
0x800A0BB9
Die Anwendung verwendet einen Parameter, der vom falschen Typ ist, außerhalb des zulässigen Bereichs liegt oder mit anderen Parametern in Konflikt steht.
adErrNoCurrentRecord 3021
0x800A0BCD
BOF oder EOF ist True oder der aktuelle Datensatz wurde gelöscht. Der von der Anwendung angeforderte Vorgang erfordert den aktuellen Datensatz.
adErrIllegalOperation 3219
0x800A0C93
Der von der Anwendung angeforderte Vorgang ist in diesem Kontext nicht zulässig
adErrInTransaction 3246
0x800A0CAE
Die Anwendung kann das Connection-Objekt während einer Transaktion nicht explizit schließen.
adErrFeatureNotAvailable 3251
0x800A0CB3
Der Anbieter unterstützt den von der Anwendung angeforderten Vorgang nicht.
adErrItemNotFound 3265
0x800A0CC1
ADO kann in der Auflistung kein Objekt finden, das dem von der Anwendung angeforderten Namen oder der Sequenzreferenz entspricht.
adErrObjectInCollection 3367
0x800A0D27
Das Anhängen ist nicht möglich, da sich das Objekt bereits in der Sammlung befindet.
adErrObjectNotSet 3420 0x800A0D5C Das von der Anwendung referenzierte Objekt zeigt nicht mehr auf ein gültiges Objekt.
adErrDataConversion 3421
0x800A0D5D
Die Anwendung hat einen Werttyp verwendet, der für den aktuellen Vorgang nicht geeignet ist.
adErrObjectClosed 3704
0x800A0E78
Wenn das Objekt geschlossen ist, ist der von der Anwendung angeforderte Vorgang nicht zulässig.
adErrObjectOpen 3705
0x800A0E79
Wenn das Objekt geöffnet ist, ist der von der Anwendung angeforderte Vorgang nicht zulässig.
adErrProviderNotFound 3706
0x800A0E7A
ADO kann den angegebenen Anbieter nicht finden.
adErrBoundToCommand 3707
0x800A0E7B
Die Anwendung kann das Command-Objekt nicht verwenden, um die ActiveConnection-Eigenschaft des Recordset-Objekts in seine Quelldaten zu ändern.
adErrInvalidParamInfo 3708
0x800A0E7C
Die Anwendung definiert das Parameterobjekt falsch.
adErrInvalidConnection 3709
0x800A0E7D
Eine Anwendung fordert eine Operation für ein Objekt an, indem sie auf ein geschlossenes oder ungültiges Verbindungsobjekt verweist.
ADODB.Field-Fehler „80020009“ Entweder ist BOF oder EOF „wahr“, oder der aktuelle Datensatz wurde gelöscht und der erforderliche Vorgang erfordert einen aktuellen Datensatz.
Die Lösung lautet wie folgt: Dieser Fehler wird dadurch verursacht, dass die Datensätze von SELECT und DELETE nicht vorhanden sind oder keine Datensätze in der Bibliothek vorhanden sind. Überprüfen Sie daher die SQL-Anweisung und ob die Bedingungen von SELECT und DELETE korrekt sind Es ist auch am besten, einen Datensatz auszuwählen oder „Ein“ vor „Fehler fortsetzen“ zu verwenden.…….Bei Fehler Gehe zu 0, um ihn zu behandeln. Wenn die Bibliothek keinen Datensatz enthält, fügen Sie einfach eine Beurteilung hinzu If objRecordSet.Eof Und objRecordSet.Bof Dann zeigt der Zeiger standardmäßig auf das Ende, sodass Sie einfach If objRecordSet verwenden können. Eof Dann zu urteilen.
ActiveServerPages,ASP0126(0×80004005)–>include-Datei nicht gefunden
MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)–>SQL-Anweisungsfehler (Datentypkonflikt oder Tabellenname (Feldname)-Fehler oder Tabelle befindet sich im Bearbeitungsstatus oder Tabelle ist in der von conn geöffneten Datenbank nicht vorhanden)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)–>SQL-Anweisungsfehler (Feldnamenfehler oder Datentypkonflikt)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)–>SQL-Anweisungsfehler (der Typ des einzufügenden oder zu aktualisierenden Feldes stimmt nicht mit dem variablen Datentyp überein)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)–>SQL-Anweisungsfehler (einzufügende oder zu aktualisierende Daten laufen über)
MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)–>SQL-Anweisungsfehler (Name des Aktualisierungsfelds oder zu aktualisierender Datentyp ist falsch)
MicrosoftOLEDBProviderforODBCDrivers(0×80004005)–>SQL-Anweisungsfehler (der Wert des Feldes, das eingefügt oder aktualisiert werden soll, darf nicht null sein)
MicrosoftOLEDBProviderforODBCDrivers(0×80004005) –>Fehler beim Öffnen der Datenbank, keine Datenbank im angegebenen Verzeichnis gefunden
MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)–>Tabelle nicht gefunden
MicrosoftVBscript-Laufzeitfehler (0x800A000D)–>Fehler beim Verweisen auf die RS-Variable (RS-Objekt ist geschlossen oder undefiniert)
MicrosoftVBscript-Laufzeitfehler (0x800A01C2)–>vbscript-Skriptfehler (vbscript-Anweisungsfehler)
MicrosoftVBscript-Laufzeitfehler (0x800A0006)–>VBscript-Skriptfehler (Überlauffehler)
MicrosoftVBscript-Compilerfehler (0x800A040E)–>fehlende Schleife
MicrosoftVBscript-Compilerfehler (0x800A03EA)–>if oder endif fehlt
MicrosoftVBscript-Compilerfehler (0x800A03EE)–>Anweisung nicht beendet (fehlendes „)“)
MicrosoftVBscript-Compilerfehler (0x800A03F6)–>if-Anweisungsfehler (fehlendes Endif)
MicrosoftVBscript-Laufzeitfehler (0x800A005B)–>Satz fehlt
MicrosoftVBscript-Laufzeitfehler (0x800A0005)–>Variable ist nicht definiert
MicrosoftVBscript-Compilerfehler (0x800A03F9)–>Wenn die Anweisung fehlt, dann
MicrosoftVBscript-Compilerfehler (0x800A0411)–>dim-Anweisungsdefinitionsfehler
ADODB.Recordset(0x800A0BB9)–>SQL-Anweisungsfehler (SQL-Anweisung oder Conn-Anweisung ist nicht definiert oder es tritt ein Fehler auf, wenn einem RS-Attribut ein Wert zugewiesen wird)
ADODB.Recordset(0x800A0CC1)–>rs-Objektfehler (das rs-Objekt selbst existiert nicht oder verweist fälschlicherweise auf einen nicht vorhandenen Feldnamen)
ADODB.Recordset(0x800A0BCD)–>rs-Objektfehler (es gibt keinen Datensatz im Datensatz, aber der Datensatz wird bearbeitet)
ADODB.Recordset(0x800A0E78)–>rs-Objektfehler (Datensatz ist nicht vorhanden, rs.open-Anweisung fehlt)
ADODB.Recordset(0x800A0CC1) –> rs-Objektfehler (Verweis auf einen nicht vorhandenen Feldnamen)
ADODB.Recordset(0x800A0E7D)–>Verbindungsdefinitionsfehler
ADODB.Recordset(0x800A0CB3)–>Die Datenbank ist im schreibgeschützten Modus geöffnet und die Daten können nicht aktualisiert werden.