240729 try...catch...finally 문

신한별·2024년 7월 29일

💪 매일 기록

목록 보기
31/97

try...catch

실행 가능한 코드 내에서 발생한 에러를 다룬다는 점에서
예외 처리 라고도 부른다.

예시

 
try {
    console.log('에러 전');

    const name = '짱구';
    console.log(name);
    name = "맹구";

    const age = 5;
    console.log(age);

}  catch (error) {
    console.log('에러 후');
}

출력 결과
에러 전
짱구
에러 후

❕ try 블록 내 에러가 발생한 시점 후의 코드는 실행되지 않는다. (age 출력 x)
❕ 에러가 발생하면 자동으로 에러의 내용이 담긴 에러 객체가 만들어지는데, 에러 객체는 기본적으로 에러 이름을 담고 있는 name 프로퍼티와 에러 내용을 담고 있는 message 프로퍼티를 가지고 있다.

활용


// //try catch 문
// try {
//     console.log(name);

//     console.log('에러 전');

//     const name = '짱구';
//     name = "맹구";

//     const age = 5;
//     console.log(age);

// }  catch (error) {
//     console.log('에러 후');
// }

function printMembers(members) {
    try {
        for (const member of members) {
            console.log(member);
        }
    } catch (error) {
        console.log(`에러지롱`);   
    }
}

const teamA = ['짱구', '철수', '유리', '훈이', '맹구'];
printMembers(teamA);

const misun = { name: 'misun' };
printMembers(misun); // 객체는 for of 문 사용 x -> 에러 발생

const teamB = ['치타', '철벽', '준호', '광태', '미리'];
printMembers(teamB);

출력
짱구 철수 유리 훈이 맹구
에러지롱
치타 철벽 준호 광태 미리

finally문

finally문은 try...catch문이 끝난 다음에 최종적으로 실행될 코드를 다룰 때 활용

try {
  // 실행할 코드
} catch (err) {
  // 에러가 발생했을 때 실행할 코드
} finally {
  // 항상 실행할 코드
}
  1. try문에서 에러가 발생하지 않는다면 try문의 코드가 모두 실행된 다음에
  2. try문에서 에러가 발생한다면 catch문의 코드가 모두 실행된 다음 실행할 코드를 finally문에 작성

즉, try문에서 어떤 코드를 실행할 때 에러 여부와 상관 없이 항상 실행할 코드를 작성

활용

function printMembers(...members) {
  for (const member of members) {
    console.log(member);
  }
}

try {
  printMembers('짱구', '철수', '훈이');
} catch (err) {
  alert('에러가 발생했습니다!');
  console.error(err);
} finally {
  const end = new Date();
  const msg = `코드 실행을 완료한 시각은 ${end.toLocaleString()}입니다.`;
  console.log(msg);
}

💡 에러 유무와 관계없이 코드 실행 시각을 알고 싶을 때 활용할 수 있다.

0개의 댓글