First Chance Exception 은 무엇일까?
원저자 DavidKlineMS 2005-7-12
번역 daewonyoon 2013-07-3
애플리케이션을 디버깅하면서 "First chance" exception 메시지를 본 적이 있나요?
혹시 이런 것이 궁금하지 않았나요?
- first chance exception 은 무엇일까?
- first chance exception 이 내 코드에 문제가 있다는 뜻일까?
first chance exception 은 무엇일까?
애플리케이션을 디버깅할 때, 디버거는 예외(exception)가 발생할 때마다 알림을 받습니다. 이 때 애플리케이션은 잠시 동작을 멈추고, 디버거는 그 예외를 어떻게 처리할 지를 결정합니다. 이 메커니즘을 처음 지나는 것을 "first chance" exception 이라고 합니다. 디버거의 설정에 따라서 애플리케이션을 계속 진행하게 하거나, 예외를 전달하고 애플리케이션을 계속 멈춰둔 채로 디버그 모드를 들어갈 수 있습니다. 애플리케이션이 예외를 처리하면, 정상적으로 진행하게 됩니다.
비주얼 스튜디오에서는 다음과 같은 메시지가 출력창에 나타날 수 있습니다.
A first chance exception of type 'System.ApplicationException' occurred in myapp.exe
비주얼 스튜디오 2005 베타2에서는 당신이 만든 애플리케이션 코드에서 first chance exception이 발생할 때마다 이 메시지가 나타나게 됩니다. 비주얼 스튜디오 닷넷 2003을 쓴다면, 특정 예외가 발생했을 때 디버거가 애플리케이션을 중지하도록 설정했을 때 이 메시지가 나타납니다.
애플리케이션이 예외를 처리하지 않는다면, 디버거는 다시 알림을 받습니다. 이것을 "second chance" exception 이라고 합니다. 디버거는 다시 애플리케이션을 잠시 중단하고, 예외를 어떻게 처리할 지 결정하게 됩니다. 보통 디버거는 second chance (unhandled) exception 에서 애플리케이션을 멈추고 디버그 모드에 진입하여 디버깅할 수 있도록 설정되어 있습니다.
first chance exception 이 내 코드에 문제가 있다는 뜻일까?
First chance exception 메시지 대부분은 문제가 있다는 뜻은 아닙니다. 예외를 잘 처리하는 애플리케이션 또는 컴포넌트에서 first chance exception 메시지는 개발자들에게 예외가 발생하는 상황이 있었고, 잘 처리됐다는 사실을 알려줍니다.
예외처리가 없는 코드의 경우는 디버거가 second chance exception 알림을 받게 될 것이고, unhandled exception 으로 애플리케이션을 멈출 것입니다.
원문링크 : http://blogs.msdn.com/b/davidklinems/archive/2005/07/12/438061.aspx
'툴-팁' 카테고리의 다른 글
WinDbg|전체 프로세스 메모리에서 특정 패턴 스캔하기 (0) | 2014.04.16 |
---|---|
[StackOverflow|WinDbg] windbg의 STACKIMMUNE 은 무슨 뜻인가? (0) | 2013.08.20 |
[번역] UAC가 설정되어 있을 때, 프로세스를 관리자 권한으로 실행시키는 방법 (1) | 2013.05.10 |
리소스 모니터 메모리 탭 탐구 (1) | 2012.04.26 |
윈도우즈에서 넌페이지드풀과 페이지드 풀 에러 트러블슈팅 (0) | 2012.04.25 |