Javascript 捕获前编辑抛出的错误?
假设我想在抛出Javascript 捕获前编辑抛出的错误?,javascript,error-handling,exception-handling,coffeescript,ecmascript-6,Javascript,Error Handling,Exception Handling,Coffeescript,Ecmascript 6,假设我想在抛出错误时编辑对象: 试试看{ 抛出错误('foobar') }捕获(e){ console.log(e.message) } 我可以这样做: (函数(状态){try{throw Error('foobar')}catch(e){e.status=status;throw e}})(404) 然而在这里它是投掷,接住,投掷[接住]有没有办法只掷/接球一次? 企图 {Types}=require'mongoose' exports.valid\u access\u token=val
错误时编辑对象:
试试看{
抛出错误('foobar')
}捕获(e){
console.log(e.message)
}
我可以这样做:
(函数(状态){try{throw Error('foobar')}catch(e){e.status=status;throw e}})(404)
然而在这里它是投掷,接住,投掷[接住]有没有办法只掷/接球一次?
企图
{Types}=require'mongoose'
exports.valid\u access\u token=valid\u access\u token=(access\u token,cb)->
除非Types.ObjectId.isValid访问\u令牌
返回cb((错误)->
err.name='ValidationError';err)(Types.ObjectId访问\u令牌)
#为简洁起见,省略了其余部分
您可以在抛出之前抛出任意对象或设置必要的属性:
试试看{
var error=新错误('foobar');
error.status=404;
投掷误差;
}捕获(e){
警报('错误:'+e.status+','+e.message);
}
是的,我知道,但是我使用的是一个外部库(mongoose.Types.ObjectId),它会抛出自己的错误。我正在检查它是否会抛出错误(使用isValid),然后返回它(在cb中)。我想在抛出status
属性之前设置它。尝试编辑我的问题