让我们说我想编辑Error
对象,因为它已被抛出:
try {
throw Error('foobar')
} catch (e) {
console.log(e.message)
}
我可以这样做:
(function(status){try{throw Error('foobar')}catch(e){e.status=status; throw e}})(404)
然而,这里是投掷,捕捉,投掷[捕捉]。 有没有办法只抛出/捕获一次?
{Types} = require 'mongoose'
exports.valid_access_token = valid_access_token = (access_token, cb) ->
unless Types.ObjectId.isValid access_token
return cb ((err) ->
err.name = 'ValidationError'; err)(Types.ObjectId access_token)
# Rest omitted for brevity
答案 0 :(得分:2)
您可以在抛出之前抛出任意对象或设置必要的属性:
try {
var error = new Error('foobar');
error.status = 404;
throw error;
} catch (e) {
alert('Error: ' + e.status + ', ' + e.message);
}