さまざまな場所からエラーが発生し、キャッチされた可能性があるため、すべてのエラーの種類を処理する集中オブジェクトでエラーを処理することをお勧めします。たとえば、エラーがかもしれない次の場所で発生します。
1.ExpressミドルウェアをSYNCエラーの場合、Webリクエスト
app.use(function (err, req, res, next) {
//call handler here
});
2.CRONジョブ(スケジュールされたタスク)
3.Yourに初期化スクリプトのどこかに
から
4.Testingコード
5.Uncaughtエラー
process.on('uncaughtException', function(error) {
errorManagement.handler.handleError(error);
if(!errorManagement.handler.isTrustedError(error))
process.exit(1)
});
6.Unhandled約束拒否
process.on('unhandledRejection', function(reason, p){
//call handler here
});
にエラーをキャッチしたときに続いて、集中エラーハンドラに渡します。詳細は
module.exports.handler = new errorHandler();
function errorHandler(){
this.handleError = function (error) {
return logger.logError(err).then(sendMailToAdminIfCritical).then(saveInOpsQueueIfCritical).then(determineIfOperationalError);
}
をread bullet 4' here( +その他のベストプラクティスと35以上の引用符とコードの例les)
グローバルに例外をキャッチしません。 –
@AshishKumar:キャッチしようとしているエラーは何ですか? – bolav
アプリケーション全体で例外が発生した場合は、1か所から処理する必要があります。例外フィルタを使用してasp.net mvcで行うように。 –