Node/노드 기능

예외 처리하기

webmaster 2022. 9. 4. 23:39
728x90

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

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

try-catch

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

노드 비동기 메서드의 에러는 따로 처리하지 않아도 됨

  • 콜백 함수에서 에러 객체를 제공하기 때문에 따로 에러 처리를 하지 않아도 된다.
    • 에러를 잡지 않아도 프로그램이 멈추지 않는다
    • 에러를 log로 남겨 어떤 오류가 발생했는지는 파악해야한다.

프로미스의 에러는 따로 처리하지 않아도 됨

  • promise에 오류가 발생하면 지저분한 로그가 위와 같이 써진다
  • 노드 버전이 올라가면 동작이 바뀔 수 있다(지금은 종료되지는 않는다)
    • 어떻게 될지 모르니 catch를 붙이는 습관을 가지자

예측 불가능한 예외 처리하기

  • 콜백 함수의 동작이 보장되지 않음
  • 따라서 복구 작업용으로 쓰는 것은 부적합
  • 에러 내용 기록 용으로만 쓰는 게 좋음
    • 모든 에러 내용이 다 기록되므로 로그를 보고 복구하거나 하면 된다

프로세스 종료하기

윈도우 

맥/리눅스

 

728x90

'Node > 노드 기능' 카테고리의 다른 글

스레드풀과 커스텀 이벤트  (0) 2022.09.04
pipe와 스트림 메모리 효율 확인  (0) 2022.09.04
버퍼와 스트림 이해하기  (0) 2022.09.04
파일 시스템 사용하기  (0) 2022.09.04
child_process  (0) 2022.07.24