前端遇到的一些错误类型

5 篇文章 0 订阅

在平时的开发中 如果能精确的定位错误的类型 能够提高很多的开发效率

下面列举一些常见的错误类型

  • ReferenceError 引用的变量不存在 !!!
//引用了一个不存在的变量  ReferenceError: a is not defied
console.log(a)  
  • TypeError 数据类型不正确的错误 !!!
//因为b是undefined  所以不能去读b的xxx属性  
//这属于类型错误了 你这个类型没有这个属性和方法 就报错
let b = undefined 
//TypeError:cannot read property 'xxx' of undefined
console.log(b.xxx)   
  • RangeError 数据值不在其所允许范围内!!!
//RangeError: Maximum call stack size exceeded
function fn(){  
    fn()  //函数调用是有次数限制的  超出了最大次数的限制  栈溢出
}
fn()
  • SyntaxError 语法错误!!!
// SyntaxError: Unexpected string  不希望出现这样的字符串
const a=""""  

错误处理

  • 捕获错误try...catch
    – 一般错误了都会被卡住 就无法执行后面的代码
    – 如果把错误捕获住了 就可以跳过去执行后面的代码
 try {
        let b;
        console.log(b.xxx);
      } catch (err) {
        console.log(err.message); //错误的文本 相关的信息
        console.log(err.stack); //错误的一些执行信息
      }
		//因为错误被我们捕获处理了  所以还可以继续执行后面的代码
      console.log('出错之后');  
  • 抛出错误throw error
    – 因为内部无法提示错误
    – 所以故意new一个错误的信息来提示
    – 然后用错误的捕获去执行代码
function tIme() {
        //声明一个函数
        if (Date.now() % 2 == 1) {
          //判断时间为奇数 就不报错
          console.log("当前时间为奇数,可以执行任务");
        } else {
       //如果为偶数就用throw new Error去new一个Error的错误对象 让他故意报错
          throw new Error("当前时间为偶数,无法执行任务");
        }
      }
      //如果直接调用函数的话 万一是偶数 就报错了 就不会执行下面的代码
      //所以我们需要把错误给捕获了  捕获了错误后 就算遇到了错误 也会执行后面的代码
      try {
        tIme(); //在try里调用这个函数
      } catch (err) {
        //err错误的对象 里面有参数  文本信息和错误信息
        console.log(err.message); //如果发生了错误 就打印err对象的文本信息
      }
      console.log(1111);  //既然捕获了错误 就算错误了也可以执行后面的代码了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值