try {} catch (error) {} finally {}
finally {}는 try {}의 에러 발생 여부와 상관없이 실행됩니다. 그러므로 에러 여부에 상관없이 실행하고 싶은 코드가 있다면 finally {}에 배치합니다. 다음은 50% 확률로 에러가 발생하지만, 에러에 상관없이 finally {}가 실행되는 것을 확인할 수 있는 코드 샘플입니다.
function generateError() {
try {
// 50% 확률로 에러 발생
if (Math.random() > 0.5) {
throw new Error();
} else {
console.log('에러 없음');
}
} catch (error) {
// 에러 발생 시 처리
console.log('에러 발생');
} finally {
// 에러 발생 여부 상관없이 실행
console.log('에러 처리가 완료되었습니다.');
console.log('----------');
}
}
// 3초마다 generateError() 실행
setInterval(generateError, 3000);