노드 입문_3

·2022년 12월 12일
0

에러 핸들링(Error handling)

에러를 관리하는 방법이고, 예상치 못한 상황에 대처하는 방식

1) try / catch
에러가 발생하더라도 프로그램이 멈추지 않고 에러를 기록

const users = ['lee', 'jo', 'jung', 2];
try {
    for(const user of users) {
        console.log(user.toUpperCase());
    }
} catch(err) {
    console.log(`Error: ${err.message}`);
}

// LEE
// JO
// JUNG
// Error: user.toUpperCase is not a function

2) throw

고의로 에러를 발생시킴 ex) 현금 인출 서비스 - 잔고 부족
throw를 호출하면 그 즉시 현재 실행되고 있는 함수는 실행을 멈춤

function withdraw(amount, account) {
    if(amount > account.balance) {
        throw new Error ("잔고가 부족합니다.");
    }
    account.balance -= amount;
    console.log(`현재 잔고가 ${account.balance}남았습니다.`);
}

const account = {balance: 1000};
withdraw(2000,account);

//Error: 잔고가 부족합니다.

3) finally

finally는 에러가 발생했는지 여부와 상관없이 언제든지 실행됨

function errorException(isThrow) {
    try {
        console.log('자원을 할당하였습니다.');
        if(isThrow) throw new Error();
    } catch (error) {
        console.log('에러가 발생했습니다.');
    } finally {
        console.log('자원을 제거하였습니다.');
    }
}

errorException(false);
// 자원을 할당하였습니다.
// 자원을 제거하였습니다.

errorException(true);
// 자원을 할당하였습니다.
// 에러가 발생했습니다.
// 자원을 제거하였습니다.
profile
개발자가 되는 과정

0개의 댓글