@airquality/custom-error

1.0.0 • Public • Published

@airquality/custom-error

自定义错误。可统一设置错误码、错误信息和用户自定义属性。

安装

npm i --save @airquality/custom-error

使用

此模块导出一个 CustomError 构造器和一个 createError 函数。

CustomError

  • new CustomError([code[, params]]) 实例化
  • CustomError.set(errors) 配置错误信息
  • CustomError.set(code, message) 配置错误信息
  • CustomError.set(code, properties) 配置错误信息
  • CustomError.get([code]) 得到错误信息

在实例化之前,应该先配置统一的错误信息,方法维护。有三种方法可以配置错误信息。

const CustomError = require('@airquality/custom-error')

// 1. 通过一个错误信息对象数组进行配置,每个对象中都必须包含 code 属性,
//    message 属性是可选的,它可以是一个字符串模板,在实例化时可通过传
//    入 params 参数编译成最终展示的信息。
CustomError.set([

  // code 属性是必须的
  { code: 'ERR_CUSTOM_ERROR1', message: 'message' },

  // 可传入字符串模板
  { code: 'ERR_CUSTOM_ERROR2', message: 'error message ${message}' },

  // 可忽略 message 参数,并添加用户自定义的属性
  { code: 'ERR_CUSTOM_ERROR3', otherProp: 'other prop' },
])

// 2. 通过传入 code 和 message 字符串进行配置
CustomError.set('ERR_CUSTOM_ERROR4', 'error message')

// 3. 通过传入 code 字符串和 props 对象进行配置
CustomError.set('ERR_CUSTOM_ERROR5', {
  message: 'error message',
  otherProp: 'other prop',
})

配置错误信息后,可通过 get 方法得到这些信息。

// 根据 code 得到某一条错误信息
// => { code: 'ERR_CUSTOM_ERROR1', message: 'message' }
CustomError.get('ERR_CUSTOM_ERROR1')

// 不传入 code 参数,可得到全部的错误信息(数组)
CustomError.get()

实例化。

// 不传入任何的参数
const customError1 = new CustomError()

// 传入已经配置的 code,输出的错误信息时 code 对应的 message
const customError2 = new CustomError('ERR_CUSTOM_ERROR1')

// 传入的 code 如果没有在配置中,则输出的错误信息就是 code
const customError3 = new CustomError('Non-existent code will be treated as message')

// 可传入 params 参数,解析字符串模板
// 下面输出的错误信息应该是:'error message test'
const customError4 = new CustomError('ERR_CUSTOM_ERROR2', { message: 'test' })

createError(name[, errors])

返回一个构造器,这个构造器的实例的名称前缀为用户输入的 name 参数。传入 errors 数组,可配置错误信息,其具体使用方法与 CustomError.set(errors) 相同。关于构造器的使用方法,与上面的 CustomError 相同。

const { createError } = require('@airquality/custom-error')
const UserError = createError('UserError', [
  { code: 'ERR_CUSTOM_ERROR', message: 'message' },
])

// ...

许可

MIT.

Readme

Keywords

Package Sidebar

Install

npm i @airquality/custom-error

Weekly Downloads

3

Version

1.0.0

License

MIT

Last publish

Collaborators

  • npm