@gotoeasy/err

0.4.1 • Public • Published

@gotoeasy/err

一个用于node环境的Error子类,提供更丰富的构造参数接口,更友好的code-frame提示,消息拼接等功能,详见Sample截图

NPM version License

Install

npm i @gotoeasy/err

Sample 1

// z.js
const codeframe = require('@gotoeasy/err');

function runCompute(){
    try{
        let div = require('./test-divxxxxxxxxxxxxxxx');
        return div(1, 0);
    }catch(e){
        throw Err.cat('my error message', e);
    }
}

try{
    runCompute();
}catch(e){
    console.error(e.toString());
}

Sample1

Sample 2

// test-div.js
module.exports = (a, b) => {
    if ( b === 0 ) {
        throw new Error('invalid parameter (b=0)')
    }
    return a/b;
};
// z.js
const codeframe = require('@gotoeasy/err');

function runCompute(){
    try{
        let div = require('./test-div');
        return div(1, 0);
    }catch(e){
        throw Err.cat('my error message', e);
    }
}

try{
    runCompute();
}catch(e){
    console.error(e.toString());
}

Sample2

Sample 3

// z.js
const codeframe = require('@gotoeasy/err');

function runCompute(){
    try{
        return div(1, 0);
    }catch(e){
        throw new Err('my error message', e);
    }
}

try{
    runCompute();
}catch(e){
    console.error(e.toString());
}

Sample3

Sample 4

// z.js
const codeframe = require('@gotoeasy/err');

function runCompute(){
    try{
        return div(1, 0);
    }catch(e){
        throw Err.cat('my message 11111', 'file=z.js', e, new Err('err message'));
    }
}

try{
    runCompute();
}catch(e){
    console.error(e.toString());
}

Sample4

Sample 5

// z.js
const codeframe = require('@gotoeasy/err');

function runCompute(){
    try{
        return div.exec(1, 0);
    }catch(e){
        throw Err.cat('my error message', e);
    }
}

try{
    runCompute();
}catch(e){
    console.error(e.toString());
}

Sample5

Sample 6

// z.js
const codeframe = require('@gotoeasy/err');

function runCompute(){
    try{
        throw new Error('test');
    }catch(e){
        throw new Err('my message1', 'file=./test.js', e, {file:'./test.js', line:74, column:51});
    }
}

try{
    runCompute();
}catch(e){
    console.error(e.toString());
}

Sample6

Err对象构造函数,提供更丰富的参数接口

  • 参数分message、error对象、options选项,数量不限,顺序随意
  • message参数有多个的话会被按顺序拼接,且第一个message作为异常对象的消息
  • error对象有多个的时候,仅最后一个有效,其stack会被拼接作为toString返回内容的一部分
  • options对象有多个的时候,仅最后一个有效,作用是自定义生成code-frame内容

Err.cat方法,主要用于编辑追加error对象的错误信息

  • 参数分message、error对象数量不限,顺序随意
  • message参数有多个的话会被按顺序拼接
  • error对象有多个的时候,stack会被按顺序拼接作为toString返回内容的一部分
  • 返回参数中最后一个error对象


Links

Readme

Keywords

Package Sidebar

Install

npm i @gotoeasy/err

Weekly Downloads

18

Version

0.4.1

License

MIT

Unpacked Size

14.4 kB

Total Files

6

Last publish

Collaborators

  • rpose