前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js自定义错误

js自定义错误

原创
作者头像
IT工作者
发布2022-01-06 17:08:19
3.5K0
发布2022-01-06 17:08:19
举报
文章被收录于专栏:程序技术知识程序技术知识

JavaScript提供了8个error对象,根据错误类型在try/catch表达式中抛出这些错误对象。

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

下面的例子解释了如何根据上面基础的错误类,创建你自己自定义的错误类。

代码语言:javascript
复制
class OutOfFuelError extends Error {}

class FlatTireError extends Error {}

自定义错误允许您根据特定的错误类型进行不同的行为,而无需使用错误消息来理解错误的类型。

代码语言:javascript
复制
try {
  //some code
} catch (err) {
  if (err instanceof OutOfFuelError) {
    //handle error
  } else if (err instanceof FlatTireError) {
    //handle error
  }
}

在你可以这样做之前,错误当然 必须显式抛出:

代码语言:javascript
复制
try {
  const car = new Car() //imagine we have a Car object

  if (!car.fuel) {
    throw new OutOfFuelError('No fuel!')
  }
  if (car.flatTire) {
    throw new FlatTireError('Flat tire!')
  }
} catch (err) {
  if (err instanceof OutOfFuelError) {
    //handle error
  } else if (err instanceof FlatTireError) {
    //handle error
  }
}

在错误创建期间,您还可以自定义与类相关的任何内容,如果需要,甚至可以自定义构造函数接收的参数:

代码语言:javascript
复制
class OutOfFuelError extends Error {
  constructor(message) {
    super(message)
    this.name = "OutOfFuelError"
  } 
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com