js-Fehlertoleranzanweisung: Selbst wenn js-Fehler auftreten, wird kein Fehler angezeigt (um zu verhindern, dass in der unteren rechten Ecke des Browsers ein gelbes Dreiecksymbol angezeigt wird, da sonst die Benutzererfahrung schlecht wird).
Kopieren Sie den Codecode wie folgt:
window.onerror=function(){return true;}
Im Folgenden werden Informationen zu js-Ausnahmen abgerufen, um Entwicklern das Auffinden von Problemen zu erleichtern
1,versuchen...fangen...
Kopieren Sie den Codecode wie folgt:
<script type="text/javascript">
var txt=""
Funktion message()
{
versuchen
{
adddlert("Willkommen Gast!")
}
fangen(irren)
{
txt="Auf dieser Seite ist ein Fehler aufgetreten./n/n"
txt+="Klicken Sie auf „OK", um mit der Anzeige dieser Seite fortzufahren,/n"
txt+="Klicken Sie auf „Abbrechen“, um zur Startseite zurückzukehren./n/n"
if(!confirm(txt))
{
document.location.href="/index.html"
}
}
}
</script>
2,werfen
Kopieren Sie den Codecode wie folgt:
<script type="text/javascript">
var x=prompt("Bitte geben Sie eine Zahl zwischen 0 und 10 ein:",")
versuchen
{
if(x>10)
wirf „Err1“
sonst wenn(x<0)
wirf „Err2“
sonst if(isNaN(x))
wirf „Err3“
}
Fänger)
{
if(er=="Err1")
alarm("Fehler! Der Wert ist zu groß!")
if(er == "Err2")
alarm("Fehler! Der Wert ist zu klein!")
if(er == "Err3")
alarm("Fehler! Der Wert ist keine Zahl!")
}
</script>
3,onerror:
Kopieren Sie den Codecode wie folgt:
<script type="text/javascript">
onerror=handleErr
var txt=""
Funktion handleErr(msg,url,l)
{
txt="Auf dieser Seite ist ein Fehler aufgetreten./n/n"
txt+="Fehler:" + msg + "/n"
txt+="URL: " + URL + "/n"
txt+="Zeile:" + l + "/n/n"
txt+="Klicken Sie auf „OK", um fortzufahren./n/n"
Warnung(txt)
Rückkehr wahr
}
Funktion message()
{
adddlert("Willkommen Gast!")
}
</script>
Ausnahmebehandlung in js
Sie können try...catch in JavaScript zur Ausnahmebehandlung verwenden. Zum Beispiel:
try { foo.bar();} Catch (e) { Alert(e.name + ": " + e.message);}
Derzeit umfassen die Systemausnahmen, die wir möglicherweise erhalten, hauptsächlich die folgenden 6 Typen:
EvalError: wird ausgelöst, wenn beim Ausführen von Code in eval() ein Fehler auftritt.
RangeError: wird ausgelöst, wenn eine numerische Variable oder ein Parameter außerhalb ihres gültigen Bereichs liegt
ReferenceError: Wird beim Dereferenzieren einer ungültigen Referenz ausgelöst
SyntaxError: Wird ausgelöst, wenn beim Parsen des Codes in eval() ein Syntaxfehler auftritt.
TypeError: wird ausgelöst, wenn eine Variable oder ein Parameter kein gültiger Typ ist
URIError: wird ausgelöst, wenn encodeURI() oder decodeURI() ungültige Parameter übergeben werden
Die oben genannten sechs Ausnahmeobjekte erben alle vom Error-Objekt. Sie alle unterstützen die folgenden zwei Konstruktionsmethoden:
new Error();new Error("Ausnahmeinformationen");
Die Methode zum manuellen Auslösen einer Ausnahme lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
versuchen {
throw new Error("Whoops!");}
fangen (e) {
alarm(e.name + ": " + e.message);}
Wenn Sie die Art der Ausnahmeinformationen bestimmen möchten, können Sie dies in Catch tun:
Kopieren Sie den Codecode wie folgt:
versuchen {
foo.bar();
} fangen (e) {
if (e Instanz von EvalError) {
alarm(e.name + ":" + e.message);
} else if (e Instanz von RangeError) {
warning(e.name + ": " + e.message }
//usw
}
Fehler hat die folgenden Haupteigenschaften:
Beschreibung: Fehlerbeschreibung (nur im IE verfügbar).
fileName: Der Dateiname des Fehlers (nur in Mozilla verfügbar).
lineNumber: Die Anzahl der fehlerhaften Zeilen (nur in Mozilla verfügbar).
Nachricht: Fehlermeldung (identisch mit der Beschreibung unter IE)
Name: Fehlertyp.
Nummer: Fehlercode (nur im IE verfügbar).
Stack: Fehler-Stack-Informationen wie Stack Trace in Java (nur in Mozilla verfügbar).
Um die Fehlermeldung besser zu verstehen, können wir daher den Catch-Teil in die folgende Form ändern:
Kopieren Sie den Codecode wie folgt:
versuchen {
foo.bar();
} fangen(e) {
if (browserType != BROWSER_IE) {
alarm("name: " + e.name + "message: " + e.message + "lineNumber: " + e.lineNumber + "fileName: " + e.fileName + "stack: " + e.stack);
} anders {
alarm("name: " + e.name + "errorNumber: " + (e.number & 0xFFFF) + "message: " + e.message "); } } "
Der Throw-Befehl in JavaScript kann tatsächlich jedes Objekt werfen, und wir können dieses Objekt in Catch empfangen. Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
versuchen {
throw new Date(); // Wirft das aktuelle Zeitobjekt aus} Catch (e) { Alert(e.toLocaleString()); // Lokales Format verwenden, um die aktuelle Zeit anzuzeigen
}