npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@gotoeasy/err

v0.4.1

Published

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

Downloads

24

Readme

@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

  • npm-packages https://github.com/gotoeasy/npm-packages