ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 예외처리
    웹프로그래밍/node.js 2019. 8. 8. 13:32

    노드는 싱글쓰레드이기 때문에 하나가 죽으면 전체 서버가 죽기 때문에 예외처리가 필수이다.

    setInterval(()=> {
        console.log('시작');
        throw new Error('서버를 고장내주마');
    },1000);

    setInterval로 1초마다 콜백이 실행되게 해주는데 error가 발생하니까 바로 서버가 죽어버렸다.

     

    try/catch문을 활용

    setInterval(()=> {
        console.log('시작');
        try {
            throw new Error('서버를 고장내주마');
        } catch (error) {
            console.error(error);
        }
    },1000);

    서버가 죽지않고 계속 1초마다 실행된다.

    하지만 에러가 나면 내보내는게 아니고 처리를 해야하기 때문에 try/catch를 권장하지는 않는다.

    하지만 async/await처럼 어쩔 수 없이 try/catch를 써야하는 경우도 있다.

     

    process.on('uncaughtException')을 활용

    process.on('uncaughtException', (err) => {
        console.error('예기치 못한 에러', err);
    });
    setInterval(()=> {
        console.log('시작');
        throw new Error('서버를 고장내주마');
    }, 1000);
    
    setTimeout(() => {
        console.log('실행됩니다');
    }, 2000);

    uncaugthException으로 에러가 기록되기는 하지만 에러가 계속 난다. 

    '웹프로그래밍 > node.js' 카테고리의 다른 글

    쿠키와 세션 구현하기  (0) 2019.08.09
    http 모듈  (0) 2019.08.08
    events모듈  (0) 2019.08.08
    util 모듈 && fs 모듈  (0) 2019.08.07
    path모듈 && url모듈 && crypto모듈  (0) 2019.08.07

    댓글

Designed by Tistory.