Maison  >  Article  >  interface Web  >  Quels sont les moyens d'intercepter les exceptions en javascript

Quels sont les moyens d'intercepter les exceptions en javascript

青灯夜游
青灯夜游original
2021-07-19 18:52:568163parcourir

Méthode : 1. Utilisez l'instruction try catchfinally, la syntaxe "try{//Debug code block}catch(e) {//Capture and handle exception}finally{//Later cleanup code block}" ; événement d'erreur de fenêtre.

Quels sont les moyens d'intercepter les exceptions en javascript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

Comment détecter les exceptions en javascript

JavaScript les exceptions sont principalement capturées à l'aide d'instructions try catch finally et d'événements window d'objets fenêtre onerror.

try catch enfin

try catch finally ne peut capturer que les erreurs d'exécution, mais ne peut pas capturer les erreurs de syntaxe. Vous pouvez obtenir les informations sur l'erreur, la pile, le fichier d'erreur, le numéro de ligne et le numéro de colonne. try catch finallyStatement marque le bloc d'instructions à essayer et spécifie une réponse à lancer si une exception se produit.

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
    }]
*/

Vous pouvez créer un objet d'erreur via le constructeur de Error Lorsqu'une erreur d'exécution se produit, l'objet d'instance de Error sera lancé. L'objet Error peut également être utilisé comme objet de base des exceptions définies par l'utilisateur Js. Types d'erreur standard intégrés :

  • EvalError : crée une instance error indiquant la cause de l'erreur : liée à eval().
  • RangeError : Créez une instance error pour indiquer la cause de l'erreur : la variable ou le paramètre numérique dépasse sa plage valide.
  • ReferenceError : Créez une instance error indiquant la cause de l'erreur : référence invalide.
  • SyntaxError : Créez une instance error pour représenter la cause de l'erreur : eval() Une erreur de syntaxe survenue lors du processus d'analyse du code.
  • TypeError : Créez une instance error pour indiquer la cause de l'erreur : la variable ou le paramètre n'appartient pas à un type valide.
  • URIError : Créez une instance error pour indiquer la cause de l'erreur : les paramètres passés à encodeURI() ou decodeURl() ne sont pas valides.

window.onerror

window.onerror peut capturer les erreurs de syntaxe et les erreurs d'exécution. Vous pouvez obtenir les informations d'erreur, la pile, le fichier d'erreur, le numéro de ligne, le numéro de colonne, tant qu'il est actuellement exécuté. windowLes erreurs de script le feront. être capturé et la surveillance des erreurs frontales peut être réalisée via Js. Pour des raisons de sécurité, lorsqu'une erreur de syntaxe se produit dans un script chargé depuis un domaine différent, les détails de l'erreur de syntaxe ne seront pas signalés. window.onerror

/*
    message:错误信息(字符串)。
    source:发生错误的脚本URL(字符串)
    lineno:发生错误的行号(数字)
    colno:发生错误的列号(数字)
    error:Error对象(对象)
    若该函数返回true,则阻止执行默认事件处理函数。
*/
window.onerror = function(message, source, lineno, colno, error) { 
    // onerror_statements
}

/*
    ErrorEvent类型的event包含有关事件和错误的所有信息。
*/
window.addEventListener('error', function(event) { 
    // onerror_statements
})

【Apprentissage recommandé :

Tutoriel avancé javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn