diff --git a/lib/common/service/handlerService.js b/lib/common/service/handlerService.js index 671e12377..7e29741b9 100644 --- a/lib/common/service/handlerService.js +++ b/lib/common/service/handlerService.js @@ -34,17 +34,28 @@ Service.prototype.handle = function(routeRecord, msg, session, cb) { return; } var start = Date.now(); - - handler[routeRecord.method](msg, session, function(err, resp, opts) { - var log = { - route : msg.__route__, - args : msg, - time : utils.format(new Date(start)), - timeUsed : new Date() - start - }; - forwardLogger.info(JSON.stringify(log)); - utils.invokeCallback(cb, err, resp, opts); - }); + try{ + handler[routeRecord.method](msg, session, function(err, resp, opts) { + var log = { + route : msg.__route__, + args : msg, + time : utils.format(new Date(start)), + timeUsed : new Date() - start + }; + if(typeof resp === 'undefined' && this.app.get('enfrceHandlerResponse')) resp = {}; + forwardLogger.info(JSON.stringify(log)); + utils.invokeCallback(cb, err, resp, opts); + }); + }catch(err){ + if(this.app.get('catchHandlerErrors')){ + process.nextTick(function(){ + var opts; + utils.invokeCallback(cb, err, {}, opts); + }); + }else{ + throw err; + } + } return; };