예외(Exception) : 처리하지 못한 에러
기본적으로 try catch문으로 예외를 처리
setInterval(() => {
console.log("시작")
try {
throw new Error("서버를 고장내주마");
} catch (err) {
console.error(err);
}
}, 1000)
위 코드를 보면 throw new Error을 만들어서 에러를 일부러 만들어서 테스트하고 있다. 이 때 에러는 catch의 인자로 잡혀져서 console로 출력해준다
하지만 모든 구문에서 다 try catch를 할 경우 가능은 하지만 조금 없어보임, 그래서 콜백 함수에서 여러 객체를 제공 해주는데 여기서 에러를 사용
const fs = require('fs');
let count = 0
const timer = setInterval(() => {
fs.unlink('./abcdefg.js', (err) => {
if (err) {
console.error(err)
}
})
count++;
if (count >= 5) {
clearInterval(timer)
}
}, 500)
프로미스도 try catch를 붙여야 한다. 아래처럼 안 붙일시 프로세스가 바로 종료 됨
const fs = require('fs').promises;
const timer = setInterval(() => {
fs.unlink('./asdfasd.js')
}, 1000)
process.on('uncaughtException', (err)...)
위를 사용하면 일어나는 모든 에러는 위의 process.on으로 다 모여진다. 하지만 보장이 안되기 때문에 기록 용으로만 쓰는 게 좋음
process.on('uncaughtException', (err) => {
console.error('예기치 못한 에러', err);
});
setInterval(() => {
throw new Error('서버를 고장내주마!');
}, 1000);
setTimeout(() => {
console.log('실행됩니다');
}, 2000);

프로세스 아이디 : process.pid