[typescript] 비동기 코드에서의 예외 처리 방법
비동기 코드에서 예외 처리는 중요한 주제입니다. TypeScript에서는 Promise, async/await, 그리고 try/catch 문을 사용하여 비동기 코드에서 예외를 처리할 수 있습니다. 이 포스트에서는 이러한 방법들을 자세히 살펴보겠습니다.
Promise를 사용한 예외 처리
Promise를 사용하면 비동기 작업의 성공 또는 실패를 처리할 수 있습니다. 예를 들어, fetchData
함수에서 데이터를 가져오는 중에 예외가 발생할 수 있습니다.
function fetchData(): Promise<string> {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
if (/* 성공 조건 */) {
resolve('데이터');
} else {
reject(new Error('데이터를 가져오는 중에 오류가 발생했습니다.'));
}
});
}
fetchData()
.then(data => {
// 데이터 가져오기 성공
console.log(data);
})
.catch(error => {
// 데이터 가져오기 실패
console.error(error);
});
위의 예제에서, fetchData
함수가 Promise를 반환하고 있는데, 해당 Promise를 사용하여 then
과 catch
를 이용하여 성공과 실패를 처리할 수 있습니다.
async/await를 사용한 예외 처리
async/await는 Promise를 더 쉽게 다룰 수 있도록 도와줍니다. 아래 예제에서는 fetchData
함수를 async 함수로 만들어 await 키워드를 사용하여 데이터를 가져오는 중에 발생한 예외를 처리합니다.
async function fetchData(): Promise<void> {
try {
const data = await fetch('https://example.com/data');
console.log(data);
} catch (error) {
console.error('데이터를 가져오는 중에 오류가 발생했습니다.', error);
}
}
fetchData();
try/catch를 이용한 예외 처리
마지막으로, 일반적인 동기 코드에서 사용되는 try/catch 문을 사용하여 Promise나 async 함수가 아닌 비동기 코드의 예외를 처리할 수 있습니다.
function fetchData(): void {
try {
// 비동기 작업 수행
if (/* 성공 조건 */) {
console.log('데이터');
} else {
throw new Error('데이터를 가져오는 중에 오류가 발생했습니다.');
}
} catch (error) {
console.error(error);
}
}
fetchData();
마치며
이 포스트에서는 TypeScript에서 비동기 코드에서의 예외 처리에 대해 알아보았습니다. Promise, async/await, 그리고 try/catch를 이용하여 비동기 코드의 예외를 처리할 수 있습니다. 올바른 예외 처리는 안정적인 애플리케이션을 개발하는 데 큰 도움이 될 것입니다.
참조: