Javascript에서 예외가 발생할 때 정리를 수행하려고하지만 예외가 스택을 계속 전파하도록하십시오.
try {
enterAwesomeMode();
doRiskyStuff(); // might throw an exception
} catch (e) {
leaveAwesomeMode();
throw e;
}
doMoreStuff();
leaveAwesomeMode();
이 코드의 문제점은 예외를 잡아서 다시 던지면 스택 추적 정보가 해당 지점까지 손실되므로 예외가 다시 발견되면 스택에서 상위로 올라가면 스택 추적 만 다시 추적됩니다. -던지다. 실제로 예외를 던진 함수가 포함되어 있지 않기 때문에 짜증납니다.
결과적으로 try..finally는 적어도 Chrome에서 동일한 동작을 갖습니다 (즉, 정확하게 다시 던지는 것이 아니라 예외 처리기 블록이 있다는 것입니다).
누구나 Javascript에서 예외를 다시 던지지 만 이와 관련된 스택 추적을 유지하는 방법을 알고 있습니까? 실패하면 예외 안전 정리 처리기를 추가하고 예외가 발생할 때 완전한 스택 추적을 캡처하는 다른 방법에 대한 제안은 어떻습니까?
모든 포인터 주셔서 감사합니다 :)