[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