Node.js 예외 처리

nara_lee·2025년 4월 1일
1

예외(Exception): 처리하지 못한 에러

• 노드 프로세스/스레드를 멈춤
• 노드는 기본적으로 싱글 스레드라 스레드가 멈춘다는 것은 프로세스가 멈추는 것
• 에러 처리는 필수

Try/Catch statement

• 기본적으로 try catch문으로 예외를 처리
• 에러가 발생할 만한 곳을 try catch로 감쌈

setInterval(() => {
  console.log("시작");
  try {
    throw new Error("error");
  } catch (e) {
    console.error("에러 발생 시간:", new Date().toISOString());
    console.error("에러 메시지:", e.message);
    console.error("스택 트레이스:", e.stack);
  }
}, 1000);

Unexpected Error Handling

• 최후의 수단으로 사용
• Try-catch로 잡지 못하는 에러 처리하고 프로세스가 종료되는 것을 방지
• 에러 내용 기록 용으로 쓰는 게 좋음

process.on("uncaughtException", (err) => {
  const errorLog = {
    time: new Date().toISOString(),
    message: err.message,
    name: err.name,
    stack: err.stack,
    process: {
      pid: process.pid,
      uptime: process.uptime(),
    },
  };
  console.error("Uncaught Exception:", errorLog);
});

setInterval(() => {
  throw new Error("I'm going to burn your server");
}, 1000);

프로세스 종료하기

윈도우

$ netstat -ano | findstr PORT
$ taskkill /pid PROCESS_ID /f

맥/리눅스

$ lsof -i tcp:PORT
$ kill -9 PROCESS_ID

본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 (B-log) 리뷰로 작성 되었습니다.

#한컴AI아카데미 #AI개발자 #AI개발자교육 #한글과컴퓨터 #한국생산성본부 #스나이퍼팩토리 #부트캠프 #AI전문가양성 #개발자교육 #개발자취업

0개의 댓글