javaScript中try和catch的使用和跳出forEac
2021-03-22 本文已影响0人
鹏多多
1,前言
有时项目中处理数据的时候,会存在数据有误,或者为空...等等问题而报错,由于javaScript
是单线程,代码是自上而下放到执行栈中执行,如果某一段报错了,后面的代码全都不会执行。为了避免这种情况发生,我们的try
和catch
就派上用场了。
2,语法
完整语法
try {
tryCode - 尝试执行的代码块
}
catch(error) {
catchCode - 捕获错误的代码块
}
finally {
finallyCode - 无论 try / catch 结果如何都会执行的代码块
}
一般我们只需要用到try
和catch
,下面是几个例子。
demo数据(下面的例子都是用这个数据)
let obj = [
{
id:'001',
title:'沙漠中怎么会有泥鳅',
array:[
{
age:18
}
]
},
{
id:'002',
title:'话说完飞过一只海鸥',
array:[
{
age:17
}
]
},
{
id:'003',
title:'大峡谷的风呼啸而过',
array:[
{
age:21
}
]
}
]
2.1,基本使用方法
在这里我们没有定义过param变量,通过console.log打印时,javaScript会抛出一个错误。
try{
console.log(param)
}
catch(error){
console.error(error)
};
console.log("如果看见了这段话说明代码没有被报错所阻塞");
控制台
2.2,自定义报错信息
配合throw new Error
try{
obj.forEach(item => {
if(item.id === '002'){
throw new Error('id不能等于002');
}
});
}
catch(error){
console.error(error)
};
console.log("如果看见了这段话说明代码没有被报错所阻塞");
控制台
3,跳出forEach循环
forEach
不能使用break
和continue
这两个关键字,本身无法跳出循环,也不能像普通for
循环一样使用return
跳出,必须遍历所有的数据才能结束。
3.1,跳出forEach
try{
obj.forEach(item => {
console.log(`当前id:${item.id}`)
if(item.id === '002'){
throw new Error('id等于002,跳出循环');
}
});
}
catch(error){
console.error(error)
};
console.log("如果看见了这段话说明代码没有被报错所阻塞");
控制台
3.2,跳出双层forEach
跳出了第二层循环,第一层循环继续执行;
try{
obj.forEach(item => {
console.log(`第一层forEach循环:${item.id}`);
try{
item.array.forEach(val => {
if(val.age < 18){
throw new Error('年龄不能小于18岁');
}
})
}catch(error){
console.error(error)
}
})
}catch(error){
console.log(error)
};
console.log("如果看见了这段话说明代码没有被报错所阻塞");
控制台
如果看了觉得有帮助的,我是@鹏多多11997110103,欢迎 点赞 关注 评论;
END
往期文章
个人主页