1. Throw가 된 후 변수 유지

기존에 Exception이 나면 정보가 저장되지 않고 빠져나간다고 알고 있었다.

가령 io_dtData라는 datatable 변수에 가공이 있었는데 Exception이 나는 경우,

in 했을 때의 상태가 유지되는 것으로 알았는데 최근 테스트를 해보니 가공된 채로 전달이 됨을 확인했다.(2022-06)

 

2. For Each + Try Catch에서 Break

Try Catch와 For each를 겹쳐놓고 Try 중간에 Break가 되어도 Finally는 수행함

 For each

  Try

      Try Sequence

      Break

  Catch

       Exception Sequence

  Finally

        Finally Sequence (Break가 돼도 수행함)

End For each

 

3. Try Catch 안에 Try Catch

Try Catch 안에 Try Catch를 쓰고 그 안쪽에서 Throw가 되면

Try(2) Sequence (Throw) => Catch(2) Exception Sequence => Finally(2) => Try(1) Sequence => Finally(1)[각주:1] 순으로 수행

(원리를 알면 자연스러운 전개다)

Try

  Try

    Throw

  Catch

  Finally

Catch

Finally

  1. 괄호 안에 있는 숫자는 depth를 의미 [본문으로]

+ Recent posts