Maison  >  Article  >  interface Web  >  Analyse des objets d'erreur JavaScript

Analyse des objets d'erreur JavaScript

不言
不言original
2018-07-05 17:48:572368parcourir

Cet article présente principalement l'analyse des objets d'erreur JavaScript, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Explication détaillée des objets d'erreur JavaScript

1. Le concept

erreur fait référence à l'état d'exécution anormal du programme, appelé « exception » ou « erreur » dans d'autres langages de programmation. L'interpréteur crée et génère un objet Error pour chaque situation d'erreur, qui contient des informations de description de l'erreur.

ECMAScript définit six types d'erreurs. De plus, vous pouvez également utiliser le constructeur Error pour créer un objet Error personnalisé et lancer l'objet à l'aide de l'instruction throw.

Six types d'erreurs :

  • ReferenceError : lorsque l'objet est introuvable

  • TypeError : le mauvais type ou objet est utilisé lors de l'utilisation de la méthode de

  • RangeError : lors de l'utilisation de la méthode de l'objet intégré, le paramètre est hors plage

  • SyntaxError : La syntaxe est incorrecte

  • EvalError : Mauvaise utilisation d'Eval

  • URIError : Erreur URI

2. Gestion des erreurs

Un mécanisme qui garantit aucune interruption anormale même si une erreur survient dans le programme.

try{
    可能发生错误的代码
}catch(err){
    只有发生错误时才执行的代码
}finally{
    无论是否出错,肯定都要执行的代码
}

Points d'utilisation :

  • Le code qui utilise le try Wrapping, même s'il n'y a pas d'erreur, est moins efficace que le code qui n'utilise pas le Try Wrapping

  • Dans try, contient le moins de code possible qui pourrait mal tourner

  • Les erreurs du mauvais type ne peuvent pas être prédites à l'avance et doivent être capturé avec try catch;

  • peut finalement être omis

3. le définisseur de la fonction doit informer l'appelant d'utiliser les erreurs dans le processus ;

Comment : lancer une nouvelle erreur ("prompt text");

Exemples d'exercices

// 程序猿甲:定义函数的人
function round(num, d){
    if(!isNaN(num) && !isNaN(d)){
        num *= Math.pow(10, d);
        return num;
    }else{
        // 抛出自定义错误
        throw new Error("参数必须是数字");  
    }
}

// 程序猿乙:调用函数的人
var d = parseInt(prompt('请输入数字'));
try{
    alert(round(123.456, d));
}catch(err){
    alert(err.message);  // 接住抛出的自定义错误
}

4. 🎜>

var n = 1;
function fun(){
    try{
        n++;
        return n;
    }catch(err){    
        // 没错误,catch不执行
        n++;
        return n;    
    }finally{
        n++;
        return n;
    }
}

console.log(fun());// 3  return为finally的
console.log(n);// 3
var n = 1;
function fun(){
    try{
        n++;
        return n;
    }catch(err){
        // 没错误,catch不执行
        n++;
        return n;
    }finally{
        n++;
    }
}
console.log(fun()); // 2  return为try的
console.log(n); // 3
var n = 1;
function fun(){
    try{
        n++;
        n += m;  //出错
        return n;   
    }catch(err){
        n++;
        return n;
    }finally{
        n++;
    }
}
console.log(fun());    // 3 return为catch的
console.log(n);        // 4
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !


Recommandations associées :

Introduction à l'objet document JavaScript

Utilisation d'ECharts pour charger des données de manière asynchrone dans des mini-programmes

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
Article précédent:Introduction aux fermetures JSArticle suivant:Introduction aux fermetures JS