Heim >Web-Frontend >js-Tutorial >Welche Möglichkeiten gibt es, Ausnahmen in Javascript abzufangen?

Welche Möglichkeiten gibt es, Ausnahmen in Javascript abzufangen?

青灯夜游
青灯夜游Original
2021-07-19 18:52:568216Durchsuche

Methode: 1. Try-Catch-finally-Anweisung verwenden, Syntax „try{//Codeblock debuggen}catch(e) {//Ausnahme erfassen und behandeln}finally{//Later-Cleanup-Codeblock}“; Fenster-Onerror-Ereignis.

Welche Möglichkeiten gibt es, Ausnahmen in Javascript abzufangen?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Wie man Ausnahmen in Javascript abfängt

JavaScript-Ausnahmen verwenden hauptsächlich die Anweisung try Catch Finally und den onerror des Fensterobjekts <code>window Zu erfassendes Ereignis. JavaScript的异常主要使用try catch finally语句以及窗口对象windowonerror事件来捕获。

try catch finally

try catch finally只能捕获运行时的错误,无法捕获语法错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号。try catch finally语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。

try{
    // try_statements
    throw new TypeError("Test");
}catch (e){
    // catch_statements
    console.log("catch_statements");
    if(e instanceof TypeError){
        // handle this expected error
        console.log("handle this expected error");
    }else{
        // handle unexpected error
        console.log("handle unexpected error");
    }
}finally{
    // finally_statements
    console.log("finally_statements");
}

/*
    注:
    [catch (e if e instanceof TypeError) { // 非标准
       catch_statements
    }]
*/

通过Error的构造器可以创建一个错误对象,当运行时错误产生时,Error的实例对象会被抛出,Error对象也可用于用户自定义的异常的基础对象,Js内建了几种标准错误类型:

  • EvalError: 创建一个error实例,表示错误的原因:与eval()有关。
  • RangeError: 创建一个error实例,表示错误的原因:数值变量或参数超出其有效范围。
  • ReferenceError: 创建一个error实例,表示错误的原因:无效引用。
  • SyntaxError: 创建一个error实例,表示错误的原因:eval()在解析代码的过程中发生的语法错误。
  • TypeError: 创建一个error实例,表示错误的原因:变量或参数不属于有效类型。
  • URIError: 创建一个error实例,表示错误的原因:给encodeURI()decodeURl()传递的参数无效。

window.onerror

window.onerror可以捕捉语法错误,也可以捕捉运行时错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号,只要在当前window执行的Js脚本出错都会捕捉到,通过window.onerror

versuchen Sie es endlich mit Catch

versuchen Sie es endlich mit Catch kann nur Laufzeitfehler, aber keine Syntaxfehler abfangen Rufen Sie die Fehlerinformationen, den Stapel, die Fehlerdatei, die Zeilennummer und die Spaltennummer ab. Die Anweisung try Catch Finally markiert einen Block von auszuprobierenden Anweisungen und gibt eine Antwort an, die ausgelöst werden soll, wenn eine Ausnahme auftritt. 🎜
/*
    message:错误信息(字符串)。
    source:发生错误的脚本URL(字符串)
    lineno:发生错误的行号(数字)
    colno:发生错误的列号(数字)
    error:Error对象(对象)
    若该函数返回true,则阻止执行默认事件处理函数。
*/
window.onerror = function(message, source, lineno, colno, error) { 
    // onerror_statements
}

/*
    ErrorEvent类型的event包含有关事件和错误的所有信息。
*/
window.addEventListener(&#39;error&#39;, function(event) { 
    // onerror_statements
})
🎜Ein Fehlerobjekt kann über den Konstruktor von Error erstellt werden. Wenn ein Laufzeitfehler auftritt, wird das Instanzobjekt von Error ausgelöst, ErrorDas Code>-Objekt kann auch als Basisobjekt für benutzerdefinierte Ausnahmen verwendet werden. <code>Js verfügt über mehrere integrierte Standardfehlertypen:
🎜
  • EvalError : Erstellen Sie eine error-Instanz, um die Fehlerursache anzugeben: bezogen auf eval().
  • RangeError: Erstellt eine error-Instanz, um die Ursache des Fehlers anzugeben: Die numerische Variable oder der Parameter überschreitet ihren gültigen Bereich.
  • ReferenceError: Erstellen Sie eine error-Instanz, um die Fehlerursache anzugeben: ungültige Referenz.
  • SyntaxError: Erstellen Sie eine error-Instanz, um die Ursache des Fehlers anzugeben: eval() tritt während des Prozesses auf Beim Parsen des Codesyntaxfehlers.
  • TypeError: Erstellt eine error-Instanz, um die Fehlerursache anzugeben: Die Variable oder der Parameter gehört keinem gültigen Typ an.
  • URIError: Erstellen Sie eine error-Instanz, um die Ursache des Fehlers anzugeben: Geben Sie encodeURI() oder an decodeURl( )Der übergebene Parameter ist ungültig.
🎜🎜window.onerror🎜🎜🎜window.onerror kann Syntaxfehler oder By abfangen Beim Erfassen von Laufzeitfehlern können Sie die Fehlerinformationen, den Stapel, die Fehlerdatei, die Zeilennummer und die Spaltennummer abrufen. Jeder Fehler im Js-Skript wird im aktuellen Fenster ausgeführt erfasst. Die Front-End-Fehlerüberwachung kann über window.onerror erreicht werden. Wenn in einem aus einer anderen Domäne geladenen Skript ein Syntaxfehler auftritt, werden aus Sicherheitsgründen die Details des Syntaxfehlers nicht gemeldet. 🎜rrreee🎜【Empfohlenes Lernen: 🎜Javascript-Tutorial für Fortgeschrittene🎜】🎜

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Ausnahmen in Javascript abzufangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn