ECMAScript 2021 中的 error 类和异常处理

阅读时长 5 分钟读完

ECMAScript 2021 引入了一些新的 error 类,这些类可以帮助我们更好地处理异常。在本文中,我们将探讨这些新的 error 类以及如何使用它们来处理异常。

Error 类

在 JavaScript 中,所有的异常都是通过 Error 类来表示的。ECMAScript 2021 中,Error 类有一些新的方法和属性。

stack 属性

Error 类的 stack 属性代表了异常发生时的堆栈信息。这个属性在调试时非常有用。

输出:

captureStackTrace() 方法

captureStackTrace() 方法可以用来控制堆栈信息的生成。我们可以使用这个方法来创建一个自定义的 Error 类,这个类只包含我们需要的信息。

-- -------------------- ---- -------
----- ------- ------- ----- -
  -------------------- -
    ---------------
    ----------------------------- ---------
  -
-

--- -
  ----- --- ------------------ ---- --------
- ----- --- -
  ---------------------
-

输出:

from() 方法

from() 方法可以将任何一个对象转换成 Error 对象。这个方法非常有用,可以将任何一个对象转换成一个异常,方便我们进行异常处理。

输出:

EvalError 类

EvalError 类继承自 Error 类,表示一个与 eval() 相关的异常。在 ECMAScript 2021 中,EvalError 类已经被废弃了,不再被使用。

RangeError 类

RangeError 类继承自 Error 类,表示一个超出范围的异常。在 ECMAScript 2021 中,RangeError 类有一个新的属性:code。

code 属性

code 属性代表了异常的类型。在 RangeError 类中,code 属性的值为 'ERR_OUT_OF_RANGE'。

输出:

ReferenceError 类

ReferenceError 类继承自 Error 类,表示一个引用错误异常。在 ECMAScript 2021 中,ReferenceError 类有一个新的属性:code。

code 属性

code 属性代表了异常的类型。在 ReferenceError 类中,code 属性的值为 'ERR_UNDEFINED_IDENTIFIER'。

输出:

SyntaxError 类

SyntaxError 类继承自 Error 类,表示一个语法错误异常。在 ECMAScript 2021 中,SyntaxError 类有一个新的属性:code。

code 属性

code 属性代表了异常的类型。在 SyntaxError 类中,code 属性的值为 'ERR_INVALID_CHAR'。

输出:

TypeError 类

TypeError 类继承自 Error 类,表示一个类型错误异常。在 ECMAScript 2021 中,TypeError 类有一个新的属性:code。

code 属性

code 属性代表了异常的类型。在 TypeError 类中,code 属性的值为 'ERR_INVALID_ARG_TYPE'。

-- -------------------- ---- -------
-------- ------ -- -
  -- ------- - --- -------- -- ------ - --- --------- -
    ----- --- --------------- --------- ---- -- ----------
  -
  ------ - - --
-

--- -
  ----- ------ - ------ -----
- ----- --- -
  --------------------
-

输出:

Conclusion

在本文中,我们探讨了 ECMAScript 2021 中的 error 类和异常处理。通过使用这些新的 error 类,我们可以更好地处理异常,并且可以更加精确地指定异常类型。如果你还没有使用这些新的 error 类,那么现在就是时候开始使用了。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d3534ca941bf71346481be

纠错
反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试