JS中的Error对象

Posted 她还会来吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中的Error对象相关的知识,希望对你有一定的参考价值。

MDN文档

Error

错误类型

  1. Error:所有错误的父类型
  2. ReferenceError:引用的变量不存在
     console.log(a);//ReferenceError: a is not defined

   console.log(a);//ReferenceError: a is not defined
   console.log('-----');

注意第二行代码,当我写入上述两行代码时,控制台只打印了第一行代码的错误。这是因为没有捕获第一行代码的错误,所以下面的代码不会执行

  1. TypeError:数据类型不正确的错误
var a;
console.log(a.name);// TypeError: Cannot read properties of undefined (reading 'name')

var a = {};
console.log(a.sing());//TypeError: a.sing is not a function


4. RangeError:数据值不在其所允许的范围内

function fn(){
    fn()
}
fn();//RangeError: Maximum call stack size exceeded


5. SyntaxError:语法错误

int a;
console.log(a);// SyntaxError: Unexpected identifier

错误处理

  • 捕获错误: try … catch

try语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

try{
  // 检测错误代码
}catch(err){
 // 捕获错误并处理
}
  • 抛出错误: throw new Error

throw 语句抛出一个错误,当错误发生时,javascript 会停止执行并抛出错误信息

function fn(a,b){
 if(a > b){
     console.log(1);
 }else{
     throw new Error('我太难嘞')
 }
}
try{
  fn(3,4)
}catch(err){
  console.log(err.message);//我太难嘞
}

如果前一个参数的值小于第二个参数的,会抛出一个异常(err)异常 (err) 通过 catch 语句捕获并自定义输出错误信息

错误属性

  • description: 错误描述 (仅IE可用).
  • fileName: 出错的文件名 (仅Mozilla可用).
  • lineNumber: 出错的行数 (仅Mozilla可用).
  • message: 错误信息 (在IE下同description)
  • name: 错误类型.
  • number: 错误代码 (仅IE可用).
  • stack: 像Java中的Stack Trace一样的错误堆栈信息
 try{
     let a;
     console.log(a.name);
 }catch(error){
   console.log(error.message);// Cannot read properties of undefined (reading 'name')
   console.log(error.name);// TypeError
   console.log(error.stack);// TypeError: Cannot read properties of undefined (reading 'name') at Error.html:52
   console.log(error.description);// undefined
   console.log(error.number);// undefined
   console.log(error.fileName);// undefined
   console.log(error.lineNumber);// undefined
 }

以上是在Chrome浏览器下的执行结果

借鉴链接

hiperion js 的try catch应用

以上是关于JS中的Error对象的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

Chrome-Devtools代码片段中的多个JS库

js代码片段

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

Node.js JavaScript 片段中的跳过代码