前节点

方便的子分类和自定义新错误类型
实例
在您的项目中包括:
var errorEx = require('error-ex');
要创建带有特定名称的错误消息类型(注: ErrorFn.name
将不反映这一点:
var JSONError = errorEx('JSONError');
var err = new JSONError('error');
err.name; //-> JSONError
throw err; //-> JSONError: error
要添加堆栈行 :
var JSONError = errorEx('JSONError', {fileName: errorEx.line('in %s')});
var err = new JSONError('error')
err.fileName = '/a/b/c/foo.json';
throw err; //-> (line 2)-> in /a/b/c/foo.json
附加到错误消息中 :
var JSONError = errorEx('JSONError', {fileName: errorEx.append('in %s')});
var err = new JSONError('error');
err.fileName = '/a/b/c/foo.json';
throw err; //-> JSONError: error in /a/b/c/foo.json
API 密码
errorEx([name], [properties])
创建新错误Ex出错类型
name: 新类型的名称( 投出时出现在出错消息中); 默认为Error.name(中文(简体) )properties:如果提供,则用作属性的密钥/值词典 用于建立堆栈消息。 密钥是属性名称 查看了错误消息,然后传递到函数值 .line: 如果指定为函数, 返回值会作为堆栈添加 输入(为您缩进)。 传递给您的属性值 钥匙.stack: 如果指定为函数, 则传递属性的值 使用密钥和生的堆栈线作为第二个参数。 没有 返回值(但可直接修改堆栈).message: 如果指定为函数, 返回值将用作新值.message获取时值。 传递了所命名财产的财产价值 ,而现有的消息作为第二个参数作为 数行(适用于多行消息).
返回像正则错误一样可以使用的构造器( 函数) 建筑师.
var errorEx = require('error-ex');
var BasicError = errorEx();
var NamedError = errorEx('NamedError');
// --
var AdvancedError = errorEx('AdvancedError', {
foo: {
line: function (value, stack) {
if (value) {
return 'bar ' + value;
}
return null;
}
}
})
var err = new AdvancedError('hello, world');
err.foo = 'baz';
throw err;
/*
AdvancedError: hello, world
bar baz
at tryReadme() (readme.js:20:1)
*/
errorEx.line(str)
使用分隔符创建堆栈行
这是一个帮助函数 。 用来代替写入一个值对象 页:1
properties数值.
str: 要创建的字符串- 使用分隔符
%s指定字符串中该值应当去向
- 使用分隔符
var errorEx = require('error-ex');
var FileError = errorEx('FileError', {fileName: errorEx.line('in %s')});
var err = new FileError('problem reading file');
err.fileName = '/a/b/c/d/foo.js';
throw err;
/*
FileError: problem reading file
in /a/b/c/d/foo.js
at tryReadme() (readme.js:7:1)
*/
errorEx.append(str)
附录 error.message 字符串
这是一个帮助函数 。 用来代替写入一个值对象 页:1
properties数值.
str: 附加的字符串- 使用分隔符
%s指定字符串中该值应当去向
- 使用分隔符
var errorEx = require('error-ex');
var SyntaxError = errorEx('SyntaxError', {fileName: errorEx.append('in %s')});
var err = new SyntaxError('improper indentation');
err.fileName = '/a/b/c/d/foo.js';
throw err;
/*
SyntaxError: improper indentation in /a/b/c/d/foo.js
at tryReadme() (readme.js:7:1)
*/