Empfohlen: Verstehen Sie tief die magischen Merkmale von FSO in ASP In ASP bedeutet FSO Dateisystemobjekt, ein Dateisystemobjekt. Das Computerdateisystem, das wir manipulieren werden, bezieht sich auf den Webserver. Stellen Sie also sicher, dass Sie die richtigen Berechtigungen dafür haben. Idealerweise können Sie Ihre eigene Maschine verwenden
7.1.2 Semantische oder LaufzeitfehlerDie Entdeckung und Handhabung von Syntaxfehlern ist ärgerlich, aber Sie werden auf eine wirklich aufregende andere Art von Fehler in der Programmierung stoßen - semantische Fehler oder Laufzeitfehler. Diese Art von Fehler wird nur beim Ausführen eines Skriptcode oder eines anderen Programms ermittelt. Mit anderen Worten, der vollständige und gültige Code wurde vom Interpreter oder Compiler interpretiert oder kompiliert, und während der Ausführung ist ein Fehler aufgetreten. Der Begriff Laufzeitfehlerpass bezieht sich auf das Ergebnis semantischer Fehler, dh solche Fehler in der Semantik des Codes und werden sichtbar, wenn der Code ausgeführt wird.
Dieser Unterschied ergibt sich aus der Tatsache, dass ein Programm Compiler oder Interpreter vor dem Umgang mit dem Programmcode eine Beschreibung des internen Code festlegen muss, der die Übereinstimmung mit dem Beginn und Ende mehrerer Strukturen umfasst, um anzugeben, was jede Struktur enthält, und dann jeden Satz analysieren, um zu wissen, wie der Satz ausgeführt werden soll. Wenn es beispielsweise ein if gibt, dann… sonst… enden Sie wenn Struktur, besteht der erste Schritt des Interpreters oder Compilers darin, zu analysieren, welche Aussagen im dann Teil und welche im elendlichen Teil enthalten sind. Der Zweck dieses Schritts besteht darin, zu bestimmen, welcher Zweig nach dem Testen der IF -Bedingungen in der Struktur ausgeführt werden soll.
Der eigentliche Unterschied zwischen einem Compiler (wie dem in Programmiersprachen wie Visual Basic und C) und einem Interpreter (wie dem Interpreter für Skriptsprachen wie VBScript und Jscript) besteht darin, dass der Kompilierer nicht versucht, Programmcode auszuführen, sondern nach zwei Vorverarbeitungsdateien die Quellprogramme, IT -Anweisungen für Binäranweisungen oder Symbolics -Codes und Forms und Forms. Der Interpreter enthält keine Codedatei, wird jedoch Schritt für Schritt zur Laufzeit ausgeführt.
1. Fehler, der den Lauf beantragt, anzuhalten
Wenn das Programm einen semantischen Fehler enthält, können Sie normalerweise zur Laufzeit eine Eingabeaufforderung erhalten. Wenn Sie Glück haben, wird das Programm aufhören, wenn ein Fehler auftritt, sodass es leicht herauszufinden ist, wo sich der Fehler befindet. Das folgende Programm definiert beispielsweise ein Array mit sechs Elementen.
<%
Dunkelne Arrvalues (5) 'sechs Elemente, die von 0 bis 5 indexiert sind
Arrvalues (6) = Whoops, haben einen Fehler bekommen
%>
Wenn Sie versuchen, den Elementwert mit dem Index auf 6 zu lesen oder festzulegen, können Sie einen Laufzeitfehler erhalten, wie in Abbildung 7-7 gezeigt:
Abbildung 7-7 Programmausführung Ergebnis 6
Beachten Sie, dass der Fehlertyp hier ein Fehler der Laufzeit ist (gleichwertig mit Semantik), kein Syntaxfehler. Die Fehlermeldung zeigt die Anzahl der Zeilen an, bei denen sich der Fehler befindet, und die Beschreibung des Fehlers, der uns hilft, den entsprechenden Fehler leichter zu finden. Dies ist jedoch ein einfaches Beispiel. In komplexeren Programmcode kann dieser Fehler in einigen Programmen auftreten, die einige Werte durchqueren und ein Array hinzufügen. Wie unten gezeigt:
<%
Dunkelne Arrvalues (5) 'sechs Elemente halten
Für Intloop = 0 bis IntListCount 'die Anzahl der Elemente in einer Liste
arrValues (intloop) = request.form (selectedItems) (intListCount)
Nächste
%>
In diesem Fall ist es wahrscheinlich, dass Sie zu viele Listeneinträge erhalten haben, oder der Index des Arrays ist nicht ausreichend. Entsprechend den Codeanforderungen können Sie bestimmen, welcher Fehler er ist, und Sie können diesen Fehler durch Erhöhen der Arraygröße lösen.
<%
Dunkelne Arrvalues (10), um elf Elemente zu halten
Für Intloop = 0 bis IntListCount 'die Anzahl der Elemente in der Liste in der Liste
arrValues (intloop) = request.form (selectedItems) (intListCount)
Nächste
%>
Oder setzen Sie die Schleifenparameter entsprechend ein, um die Fehlerbehandlung aufzulösen.
<%
Dunkelne Arrvalues (5) 'sechs Elemente halten
IntArrayMax = intListCount
Wenn IntarrayMax> 5 dann intarraymax = 5
Für Intloop = 0 zu IntarrayMax 'fügen Sie nur die ersten sechs Elemente hinzu
arrValues (intloop) = request.form (selectedItems) (intListCount)
Nächste
%>
Viele andere Laufzeitfehler können verhindern, dass Webseiten ausgeführt werden, z. B. die Instanziierung einiger Komponenten oder Objekte, da ein progiden Fehler vorliegt oder weil die Komponente nicht korrekt installiert ist. In diesen Fällen gibt das Ergebnis immer an, dass ActiveX keine Objektfehlermeldung erstellen kann, gefolgt von der Zeilennummer des Aufrufs an den Server.CreateObject -Methode.
2. Fehlererzeugung Fehlerergebnisse
Wie oben erwähnt, haben wir möglicherweise Glück, wenn wir auf einen Laufzeitfehler stoßen, der den Programmcode stoppt. Eine andere Situation ist jedoch, dass das Programm gut ausführen kann, als ob nichts passiert wäre, und schließlich ein falsches Ergebnis erzielt. Dies ist der schwierigste Fehler zu entdecken und zu lösen, weil Sie sich nicht bewusst sind, dass etwas falsch ist. Angenommen, es gibt eine Webseite, die den Geburtstag des Benutzers als Datumswert nimmt und die Datumselemente separat anzeigt (Sie können diese als drei Einträge zu einer Datenbank hinzufügen).
<%
'Holen Sie sich den Wert aus der Anfrage und zeigen Sie ihn an
DatbirthDate = Request.form (Birthdate)
Antwort. Schreiben Sie den Wert, den Sie eingegeben haben: & datBirthDate & <p>
'Holen Sie sich die einzelnen Datumselemente
intday = tag (datBirthdate)
intmonth = Monat (DatbirthDate)
intyear = Jahr (DatbirthDate)
'und zeigen sie an
Antwort.Write Day: & Cstr (intday) & <br>
Antwort.Write Monat: & cstr (intmonth) & <br>
Antwort.Write Jahr: & cstr (intyear) & <br>
%>
Abbildung 7-8 ist das Ergebnis, das im Monat/Tag/Jahr im American Date Style Style angezeigt wird, als ob alles in Ordnung ist.
Abbildung 7-8 Der Bildschirm zeigt Geburtstag auf
Wenn Sie jedoch ein illegales Datum eingeben oder das Eingangstextfeld leer lassen, erhalten Sie einen Laufzeitfehler, wie in Abbildung 7-9 gezeigt:
Abbildung 7-9 Fehleraufforderung Bildschirm
(1) Wenn nicht ein Jscript -Experte
Dies ist kein großes Problem bei der Suche nach Fehlern, da wir schnell feststellen können, warum die Fehler auftreten. Die Tatsache, dass die Webseite nicht mehr ausgeführt wird, hilft uns, Fehler zu verfolgen. Es können jedoch unerwartete Fehler auftreten. Zum Beispiel den Programmcode in JScript neu schreiben, da ich kein JSCIPT -Experte bin, werden einige geringfügige Fehler angezeigt.
<%
// Erhalten Sie den Wert aus der Anforderung und zeigen Sie ihn an
var datBirthDate = neues Datum (Request.Form (BirthDate));
Antwort.Write (der von Ihnen eingegebene Wert ist: DatBirthDate <p>);
// Holen Sie sich die einzelnen Datumselemente
intday = datBirthDate.getDay ();
intmonth = datBirthDate.getMonth ();
intyear = datBirthdate.getyear ();
// und zeigen Sie sie an
Antwort.Write (Tag: intday.toString () <br>);
Response.write (Monat: intmonth.tostring () &
Teilen: Verwenden Sie ASP, um die vollständige Betriebsstrategie für MP3 -Track -Informationen zu implementieren Lassen Sie uns kurz über das ID3 -Tag von MP3 sprechen, da es hauptsächlich verwendet wird, um dieses Ding zu bedienen. MP3 war heute nicht das, was wir heute am Anfang gesehen haben. Es gibt Sänger, Epochen, Sammlungen usw. Informationen und nur einige einfache Parameter wie Ja/Nein, um anzuzeigen, ob sie privat oder urheberrechtlich geschützt sind.