2013-03-29 2 views
0

내 응용 프로그램에서 내 응용 프로그램에서 uncaughtException을 사용하여 오류를 캡처하는 모듈을 만들고 싶습니다. 동일한 모듈에서 uncaughtException을 만들면 캡처 오류가 발생하지만 별도로 uncaughtException을 만들면 오류가 발생합니다. 그 모듈을 호출하면 erros를 캡처하지 못하게됩니다. 아무도이 문제를 해결할 수 있습니까?uncaughtException을 사용하여 node.js의 오류를 캡처하는 방법

module1.js

var errorModule=require('./module2'); 
    var err = new Error('Something went terribly wrong'); 
    errorModule.captureError(err); 

module2.js

module.exports.captureError=function(err){ 

    process.on('uncaughtException', function(err) { 

     console.log(err); 

    }); 



} 

답변

0

이 시도 :

// module1.js 
var errorModule=require('./module2'); 
errorModule.captureErrors();  
throw Error('Something went terribly wrong'); 

// module2.js 
module.exports.captureErrors = function() { 
    process.on('uncaughtException', function(err) { 
    console.log('an error occurred', err); 
    }); 
}; 

몇 가지를 통지 :

  • process.on('uncaughtException', ...)은 잡히지 않은 예외를 잡기 위해 이벤트 처리기를 설치합니다. 귀하의 코드가 오류를 전달하려고 시도하지만, 당신이 쓰고있는 것을 무력화시키는 것 같습니다 ('uncaughtException을 사용하여 응용 프로그램 오류를 캡처하려면');
  • 잡히지 않은 예외는 이 던져진 오류입니다. (throw Error(...));

당신이 의 코드가module1이처럼 보이도록, module2 요구를 작업 할 경우

module.exports.captureError = function(err) { 
    console.log(err); 
}; 

을하지만 그건 uncaughtException과는 아무 상관이 없습니다.

관련 문제