← 글 목록

notes

47장. 에러 처리

모던 JS Deep Dive — 에러 생성·전파·처리와 예외 대응 핵심 정리.

참고: 이웅모 《모던 자바스크립트 Deep Dive》 47장 · [MDN Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error)

에러 없는 코드는 없다. throw / try-catch-finally / Error 타입 / 비동기 에러.

try {
  throw new Error('boom');
} catch (e) {
  console.error(e.message);
} finally {
  console.log('cleanup');
}

왜 처리하나

하위 스택에서 복구·로깅·사용자 메시지. 삼키지 말고 경계에서 처리.

Error

message, name, stack. 커스텀 class ValidationError extends Error.

비동기

async function f() {
  try {
    await boom();
  } catch (e) {
    // …
  }
}
window.addEventListener('unhandledrejection', …);

함정

  • catch에서 빈 블록
  • JSON.parse try 범위 과다
  • 문자열 throw 비추

실무

  • 도메인 에러 타입
  • 로깅 서비스
  • finally 리소스 해제

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.

연습·복습 체크리스트

  • [ ] 핵심 표 다시 그리기
  • [ ] 함정 예제 콘솔 재현
  • [ ] MDN 북마크
  • [ ] 실무 코드 검색·리팩터 후보
  • [ ] 앞뒤 장 한 줄 연결

일기 보강

책을 덮고 한 줄 정의를 내 말로 다시 썼다. 예제 세 개를 치면 문제 유형이 보인다. 원문 복붙 없이 “왜”만 남겼다.

웹·스펙 메모

MDN 용어를 디버깅 언어로 번역해 적는다. 팀 컨벤션 초안으로 표를 제안한다.

실무 적용

PR에 체크리스트, 버그 리포트에 재현+기대/실제.