例如,我有不同的错误组,MyErrorGroupFoo
并且MyErrorGroupBar
我希望在我的错误处理程序中以不同的方式处理这些错误,但我还想在错误消息中提供其他信息。问题是我区分错误,error.message
所以如果我想处理两种不同类型的错误,我必须有两条这样的错误消息
throw new Error('MyErrorGroupFoo')
或者
throw new Error('MyErrorGroupBar')
,但是如果我想在错误消息中提供详细信息,我必须有多种类型的错误消息,实际上几乎所有的错误消息都会像这样不同
throw new Error('Wrong Foo, foo =', foo)
或者
throw new Error('Wrong Bar, bar =', bar)
我怎么不能实现处理不同组错误的目标,可能(最常见)特定组中的不同错误消息?
现在我只需将 JSON 放入这样的错误消息中即可
throw new Error(JSON.stringify({
what: 'MyErrorGroupFoo',
why: 'Wrong Foo, foo =', foo
})
或者
throw new Error(JSON.stringify({
what: 'MyErrorGroupBar',
why: 'Wrong Bar, bar =', bar
})
当我发现错误时,我会根据属性解析error.message
并决定下一步该做什么。what
这种方法效果很好,但我觉得有更好的通用解决方案。是吗?