본문 바로가기

툴-팁

[번역] First Chance Exception 은 무엇일까?

반응형

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

728x90