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
클래스를 확장하여 더 설명적인 에러 정보를 제공할 수 있습니다.