에러를 관리하는 방법이고, 예상치 못한 상황에 대처하는 방식
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
고의로 에러를 발생시킴 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: 잔고가 부족합니다.
finally는 에러가 발생했는지 여부와 상관없이 언제든지 실행됨
function errorException(isThrow) {
try {
console.log('자원을 할당하였습니다.');
if(isThrow) throw new Error();
} catch (error) {
console.log('에러가 발생했습니다.');
} finally {
console.log('자원을 제거하였습니다.');
}
}
errorException(false);
// 자원을 할당하였습니다.
// 자원을 제거하였습니다.
errorException(true);
// 자원을 할당하였습니다.
// 에러가 발생했습니다.
// 자원을 제거하였습니다.