setInterval(() => {
console.log('시작');
try{
throw new Error('서버 고장내주마');
}catch (error){
console.error(error);
}
}, 1000);
try, catch를 쓰면 서버는 죽지 않는다. 권장사항은 아님. 굳이 에러를 낼 필요 없음.
async/await처럼 어쩔 수 없이 try/catch를 써야하는 경우도 있음.
setInterval(() => {
fs.unlink('./as.js', (err) => {
if(err){
console.log('시작');
console.log(err);
console.log('끝');
}
});
}, 1000);
에러는 나지만 프로세서는 멈추지 않는다.
=> 노드 내장 메서드에서 발생하는 에러는, 에러가 나도 프로세스를 멈추지 않는다.
// uncaughtException 이벤트는, 처리하지 않은 예외. 한번에 모아서 처리해줌.
// 에러가 기록되고 처리할 수 있다. 하지만, error를 넘겨줘서 계속 error가 실행된다.
// uncaughtException에 의존하지 말고!!! 근본적인 에러의 원인을 해결해야만 한다!!!!
process.on('uncaughtException', (err) =>{
console.error('예기치 못한 에러', err);
// 서버를 복구하는 코드는 권장사항이 아님.
// uncaughtException 가 콜백이 실행되는 것을 보장하지 않기 때문.
})
setInterval(() =>{
throw new Error('서버를 고장내주마!');
}, 1000);
// 서버를 error 던져서, 다음 것이 실행 되지 않음.
setTimeout(() => {
console.log('실행됩니다.');
}, 2000);
'TIL > Node JS' 카테고리의 다른 글
writehead(404) & status(404), status(500) && express (0) | 2019.11.03 |
---|---|
cookie, res.writeHead, Set-cookie, 클라이언트<=>서버 (0) | 2019.10.25 |
on === addEventListener, new eventEmitter( ), emit ( ) (0) | 2019.10.20 |
기타 fs 메서드 (0) | 2019.10.20 |
버퍼, 스트리밍 (2) (0) | 2019.10.20 |
comment