에러 핸들링 error handling

에러 발생에 대배하지 않으면 프로그램이 종료됨

console.log('에러 발생 전');

// ⚠️ 오류를 발생시키는 코드
(3).split('');

// 출력되지 않음
console.log('에러 발생 후');

자바스크립트의 에러 핸들링

👉 MDN 문서 보기

try ~ cath

const arr = ['ABC', '가나다', 123, '123'];

function getLetterArray (str) {
  // 💡 인자로 어떤 타입의 값이 주어질지 모르는 상황
  try {
    return str.split('');

  } catch (e) {
    console.error('🛑 에러!!', e);
    return [];
  }
}

arr.forEach(i => {
  console.log(getLetterArray(i));
});
function connect () { console.log('☀️', '통신 연결'); }
function disconnect () { console.log('🌙', '통신 연결 해제'); }
function sendArray (arr) { console.log('전송', arr); }

function sendStringAsArray (str) {
  connect();

  try {
    sendArray(str.split(''));
    return true;

  } catch (e) {
    console.error('🛑 에러!!', e);
    return false;

  } finally {
    // 💡 전송 성공 여부와 관계없이 연결은 끊어야 함
    disconnect();
    console.log('- - - - - - - -');
  }

  // ❓ 이곳에 넣는 것과 무엇이 다른가?
  // 아래로 대체하여 실행해 볼 것
  // disconnect();
  // console.log('- - - - - - - -');
}

['ABC', '가나다', 123, '123'].forEach(i => {
  console.log(
    sendStringAsArray(i) 
    ? '[성공]' : '[실패]', '\\n\\n'
  );
});

Error 객체