TypeScript:
에러 처리하기

어떻게:

TypeScript에서 에러를 처리하는 것은 종종 try, catch, finally 블록을 포함합니다.

function riskyOperation() {
  throw new Error("무언가 잘못되었습니다!");
}

function handleErrors() {
  try {
    riskyOperation();
  } catch (error) {
    console.error("에러가 발생했습니다:", error.message);
  } finally {
    console.log("이것은 에러 여부와 상관 없이 항상 실행됩니다.");
  }
}

handleErrors();

출력 예시:

에러가 발생했습니다: 무언가 잘못되었습니다!
이것은 에러 여부와 상관 없이 항상 실행됩니다.

프로미스를 이용한 비동기 예제:

async function asyncRiskyOperation() {
  return new Promise((resolve, reject) => {
    // 에러를 시뮬레이션
    reject("참담하게 실패함");
  });
}

async function handleAsyncErrors() {
  try {
    await asyncRiskyOperation();
  } catch (error) {
    console.error("비동기 에러 발생:", error);
  }
}

handleAsyncErrors();

출력 예시:

비동기 에러 발생: 참담하게 실패함

심화 탐구

에러 핸들링은 프로그래밍이 시작된 이래로 핵심 요소였습니다. JavaScript를 기반으로 하는 TypeScript에서는, ECMAScript 2017에서 async/await이 도입됨에 따라 에러 핸들링이 더욱 견고해졌습니다. 그 전까지는 비동기 코드에서 에러를 처리하기 위해 콜백 함수와 프로미스에 주로 의존했습니다.

TypeScript에서 try/catch의 대안은 React와 같은 프레임워크에서 제공하는 에러 경계를 사용하는 것입니다. 서버 측 핸들링의 경우, Express.js와 같은 플랫폼에서 미들웨어를 사용하여 에러 관리를 중앙집중화할 수 있습니다.

구현면에서, TypeScript는 자체 에러 핸들링 메커니즘이 없고 JavaScript의 그것에 의존합니다. 사용자 정의 에러 클래스는 Error 클래스를 확장하여 더 설명적인 에러 정보를 제공할 수 있습니다.

참고자료