코딩에 익숙하지 않습니다. try ... catch가 node.js에서 작동하지 않는 이유를 이해하려고 시도합니다. 나는 예제를 만들었지 만, 예상과는 반대로 ... catch가 작동하는 것처럼 보입니다. 내 이해가 어디서 잘못 되었습니까? 도와주세요.node.js에서 try and catch 이해하기
function callback(error) { console.log(error); }
function A() {
var errorForCallback;
var y = parseInt("hardnut");
if (!y) {
throw new Error("boycott parsley");
errorForCallback = "boycott parsley for callback";
}
setTimeout(callback(errorForCallback),1000);
}
try {
A();
}
catch (e) {
console.log(e.message);
}
// Output: boycott parsley
// Synchronous behaviour, try...catch works
----------- 예 ----------
function callback(error) { console.log(error); }
function A() {
var errorForCallback;
setTimeout(function(){
var y = parseInt("hardnut");
if (!y) {
// throw new Error("boycott parsley");
errorForCallback = "boycott parsley for callback";
}
callback(errorForCallback);
}, 1000);
}
try {
A();
}
catch (e) {
console.log(e.message);
}
// Output: boycott parsley for callback
// Asynchronous behaviour
// And if "throw new Error" is uncommented,
// then node.js stops
node.js에서 작동하지 않는 이유는 무엇이라고 생각하십니까? 비동기 작업에서 발생한 예외에 대해서는 작동하지 않습니다. 이러한 종류의 오류를 잡으려면 [도메인] (http://nodejs.org/docs/latest/api/domain.html)을 사용할 수 있습니다. – mscdex