Errorable, Javascript错误处理解决方案
Errorable
前身是 Web Errors(https://github.com/JS-Errors/node)
Web Errors的项目已经投入使用,但是使用过程里发现问题比较多, 所以才有了Errorable这个项目,解决之前碰到的问题。
项目地址:
https://github.com/calidion/errorable
旨在解决Javascript的错误定义,交流,自定义,国际化,API化等问题。 这次发布的Errorable基本上解决了在我的项目中被困扰的所有跟错误相关的问题。 可以通过自定义json文件或者加载json对象定义所有错误 目前已经定义的错误是一部分的HTTP错误: https://github.com/calidion/errorable/blob/master/lib/stocks/protocols/http.js
功能说明:
- 域(Domain)
类似于前缀(Prefix),方便错误的识别 - 预定义错误(即标准错误)
预定义库会随着时间不断的累积,方便使用 - 国际化
错误的消息值可以随着不同的区域发生变化 - 定制化
通过指定错误文件定制错误信息 - 一致性 由于错误名采用字符标识,对于相同名字的错误,不同的项目可以通用,方便了项目的沟通过。
安装
$ npm install --save errorable
使用
//获取错误接口
var errorable = require('errorable');
//错误批量生成
var Generator = errorable.Generator;
var errors = new Generator(errorable.stocks.http, 'zh-CN').errors;
//errors.Ok.code
//errors.Ok.message
//errors.Ok.name
//错误临时生成
var Errorable = errorable.Errorable;
var error = new Errorable({
name: 'UserNotFound', //Sequential Error Description
prefix: 'java', //Prefix for Messages
code: 404, //Numeric value for this error
messages: {
'zh-CN': '用户未定义',
'en-US': 'User is not found!'
} , //Customized Error Messsage
locale: 'en-US', //Locale for errors
});
//error.name => "UserNotFound"
//error.code => 404
//error.message => "java:User is not found!"
//error.restify() => { code: 404, message: "java:User is not found!", name: 'UserNotFound'}
抛出错误
throw error;
错误消息(message)、错误代码(code)和错误名称(name)
- 错误消息可以添加前缀,可以根据地区变换
- 错误代码可以自定义,也可以预定义
- 错误名称直接使用字符串,可在做到语言无关,在所有的项目中通用,并且可以唯一标识