赞
踩
关于捕获错误的几种方式
使用范围:
在同步函数中,可以使用try/catch捕获错误信息。
var b = 0;
try {
console.log(a); //变量a不存在,发生错误
} catch (err) { //catch()捕获error name=err
console.log(b = 1); //执行此代码以矫正错误
if (confirm("对还是错?")) { //弹出对话框,显示信息“对还是错?”和“确定”/“取消”按钮
document.write("对"); //按“确定”,页面输出“对”
} else {
document.write("错"); //按“取消”,页面输出“错”
}
}
由于async/await并没有自己的错误信息捕获机制,所以try/catch用来捕获async/await函数的错误机制
async function asyfn(){
try{
var result1 = await fn(false, 'hello');
console.log('中间内容输出');
var result2 = await fn(false, 'world');
console.log(result1,result2);
}catch(e){
console.log('catch',e)
}
}
注意的是:try/catch不能捕获异步函数的错误信息,所以对于Promise来说,try/catch并不能捕获它的错误信息。但是这并没有关系,应为对于Promise来说,它有自己捕获错误信息的方式。使用链式调用方法catch()方法,捕获Promise错误信息。
function asyncFunction(){ return new Promise(function(resolve, reject){ console.log('aaa') throw new Error('throw new error') console.log('bbb') resolve('resolve error') }) } asyncFunction().catch(function(error){ console.log('one', error) }).then(function(message){ console.log('resolve') }).catch(function(error){ console.log('two', error) })
指得注意的是:上面所说的try/catch不能捕获异步函数的错误信息对于async/await来说,并不使用。try/catch的错误信息能够被try/catch所捕获到。
就是利用回调函数,判断是否出现问题。这个方法基本不再使用,这里不在讲述。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。