[typescript] finally 블록에서 예외를 던지면 어떻게 되나요?
TypeScript에서 try-catch-finally
문은 예외 처리에 사용됩니다. finally
블록은 예외가 발생하든 발생하지 않든 모두 실행됩니다. 만약 finally
블록에서 예외를 던진다면, 해당 예외는 try
블록이나 catch
블록에서 발생한 예외를 덮어씁니다. 즉, finally
블록에서 발생한 예외가 우선 순위를 가집니다.
아래 예제를 참고하여 설명해보겠습니다.
function exampleFunction(): void {
try {
// 예외 발생
throw new Error('Exception from try block');
} catch (error) {
console.error('Caught an error:', error);
} finally {
// finally 블록에서 예외 발생
throw new Error('Exception from finally block');
}
}
try {
exampleFunction();
} catch (error) {
console.error('Caught an error from the finally block:', error);
}
위의 코드를 실행하면 finally
블록에서 발생한 예외가 우선적으로 처리되어, catch
블록에서 발생한 예외는 무시됩니다.
참고 문헌: https://www.typescriptlang.org/docs/handbook/2/try-catch-finally.html