• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

actual 관련 Error Catch 부분.

22.06.04 23:43 작성 조회수 121

0

안녕하세요 

 

수업중 궁금한 부분이 있어 글을 남깁니다.
actual 이라는 함수로 만들어서 바로 error 를 만드는 것이 아니고 

ClickCountView.js 에서 throw Error 를 해야지만 오류가 발생하는 건가요?

설명상으로 이해 하면 actual 라는 함수로 바로 error 를 만들어내는 걸로 이해를 했는데요 !.

답변 1

답변을 작성해보세요.

2

자스민의 exprect 매처는 인자로 넣은 함수가 예외를 던지면 toThrowError()로 검증할수 있습니다. 그래서 인자로 전달한 actual 함수가 예외를 던지는지 테스트하는 코드인데요.

질문하신 것을 정리하면 왜 actual 함수 본체에서 예외를 던지지 않는건지 궁금하신 것이죠? ClickCountView에서 예외를 던져야만 하는게 궁금하신 걸로 이해했습니다.

이것은 자바스크립트의 예외 처리 방식을 알면 이해할 수 있습니다. 특정 함수에서 예외가 발생했을 때 보통 이것을 catch로 처리합니다. 그렇지 않으면 이 예외는 함수 호출 순서상(함수 호출 스택에 쌓이는 순서) 이전 함수에게 전달됩니다. 이것은 처리가 될 때까지 이전 함수에게 전달되는 방식입니다.

다시 우리 예제로 돌아옵시다. ClickCountView에서 예외를 처리하지 않으면 이것은 이전 함수에게 전달됩니다. 그것이 바로 actual 함수입니다. 여기서 예외가 발생되면 자스민에서 toThrowError로 검증할 수 있는거구요. 그래서 actual 함수에서 직접 예외를 발생시키는 것과 ClickCountView에서 예외를 발생해 처리하지 않은 것은 같은 효과가 있습니다.