Visual Studio에서 "First Chance Exception"이 발생할 때가 있다.
이건 또 뭔소리여... 첫번째 기회 예외??

대략 인터넷을 뒤져 보니 이런 뜻이더군... 맞게 이해했나 모르겠다.


  1. 어플리케이션이 디버그 모드로 실행될 때, 디버거는 모든 Exception 발생을 알아차릴 수 있다. (이 Exception이 Handle되든 아니든..) 이 단계를 "First Chance"라 한다.
  2. 만약 이 Exception이 적절하게 Handling되었다면 실제로 응용프로그램은 문제를 일으키거나 종료(Crash)되지 않을 것이다. 하지만, 디버거의 설정에 따라서 적절히 Handling된 Exception에 대해서 조차도 반응 (실행중지 및 오류메시지 발생)하도록 설정할 수 있는데, 이 것을 First-Chance Exception이라 한다.
  3. First-Chance Exception이 발생했으나, 실제 Release 실행시에는 별 문제가 생기지 않는다면 이것은 Exception이 발생했으나 내부적으로 Handling되었음을 의미한다. 따라서 이러한 경우 Debug모드에서 Exception이 발생했다 하더라도 큰 문제가 되지 않는다. 대부분 WinAPI 내부에서 처리되는 경우가 많다.
  4. 단, 이 Exception이 적절하게 Handle되지 않은 경우, Release 실행시에 실제로 오류가 발생하고 프로그램이 종료되게 된다. (Second Chance Exception) 이 단계라면 당연히 적절한 조치를 해주어야 한다.
    http://blogs.msdn.com/davidklinems/archive/2005/07/12/438061.aspx

    Visual Studio에서도 First-Chance Exception을 Handling하도록 (혹은 하지 않도록) 설정할 수 있다. 간혹 디버그 모드에서 디버그 실행을 시키자마자 First-Chance란 놈이 발생해서 아예 디버그 시작을 못하는 경우가 있는데 이럴 땐 First-Chance Exception을 Handle하지 않도록 설정해 주어야 한다.
    http://blog.naver.com/li0129?Redirect=Log&logNo=60018574262


Posted by kuaaan
TAG ,

댓글을 달아 주세요

  1. ProgrammerJ 2015.01.06 15:04 신고  댓글주소  수정/삭제  댓글쓰기

    궁금해서 알아보는 중이었는데 자세히 설명해주셔서 속이 시원하네요^^
    감사합니다~ 담아가고 싶은데 가능할까요? 출처 명시하겠습니다.



사랑합니다. 편안히 잠드소서