要努力啊小汤!
当你的才华还不足以撑起你的野心时,你应该静下心学习!!!

错误处理机制

2020-11-05 16:55:14


 实例对象:Error构造函数,错误中断,抛出异常

  1. 三个属性:name【错误名字】
                     message【错误信息提示】
                     stack【错误堆栈】
  2. 使用:名字+.+属性(a.message)
  3. try{
    尝试执行的代码块
    }catch(err){
    捕获错误的代码块
    }finally{
    无论结果如何都会执行的代码块,可省
    }

     

     

     

     

     【下面】

     


六大错误类型:6个派生对象

  1. SyntaxError对象:语法错误
  2. ReferenceError对象:引用了不存在变量
  3. RangeError对象:值超出有效范围
  4. TypeError对象:变量值不是预期类型
    如对字符串数值等直接new【new 123】,new命令应该是一个构造函数
  5. URIError对象:相关参数不正确抛出的错误
  6. EvalError对象:没有正确执行函数,已经停止使用

六个派生对象+Error对象都是构造函数,可以手动生成对象实例;

var err1 = new Error('出错了!');
var err2 = new RangeError('出错了,变量超出有效范围!');
var err3 = new TypeError('出错了,变量类型无效!');

err1.message // "出错了!"
err2.message // "出错了,变量超出有效范围!"
err3.message // "出错了,变量类型无效!"

 


 

自定义错误对象(prototype)略

 


throw语句:手动中断程序执行,抛出一个错误

  可以抛出任何类型值,参数是任何值

// 抛出一个字符串
throw 'Error!';
// Uncaught Error!

// 抛出一个数值
throw 42;
// Uncaught 42

// 抛出一个布尔值
throw true;
// Uncaught true

// 抛出一个对象
throw {
  toString: function () {
    return 'Error!';
  }
};
// Uncaught {toString: ƒ}

 

try...catch结构:允许对错误进行处理,选择是否往下执行

try {
  f();
throw "出错了"; } catch(e) { // 处理错误
console.log(e.name+e.message+e.stack)
}

 

 


finally代码块:不管是不是最后都放在最后

try {
  writeFile(Data);
} catch(e) {
  handleError(e);
} finally {
  closeFile();
}

 

先try,有错执行catch后再finally;
           没错执行finally

posted on 2020-11-05 17:31  做一个有趣的妞儿  阅读(92)  评论(0)    收藏  举报