2011-03-22 2 views
0

종료 할 때 내 응용 프로그램이 무한 루프에 들어갈 수있는 이상한 시나리오가 있습니다. 그것은 뭔가를하고 싶어하지만 더 이상 액세스 할 수 없으므로 (시간 기반) 호출이 실패 할 때 발생합니다. 그런 시나리오에서는 멈추어야합니다. 실패한 시도를 기록하고 특정 시간 동안 특정 수가 초과하면 JIT 디버거를 시작하고 응용 프로그램을 중지 할 예외가 발생합니다. 저는 왜 그것이 루프에 들어가서 호출 스택과 애플리케이션 상태와 같은 정보를 제공하는 JIT 창을 원하게되는지 잘 모릅니다. 예외 처리 기능이 있지만 원하는 기능을 해제하고 JIT 디버거를 트리거하는 예외를 생성하지만 예외를 처리하고 충돌을 피하는 다른 모든 게시물을 생성합니다. 런타임에 응용 프로그램을 중지하고 발생하는 상황을 알려주는 또 다른 방법이 있다면 알고 싶습니다. 감사합니다. .C# 치명적인 예외를 생성합니까?

+0

언제든지 System.Threading.Thread.CurrentThread.Abort() – asawyer

+0

디버거로 앱을 실행하지 않으시겠습니까? – BrokenGlass

답변

1

이 줄 :

System.Diagnostics.Debugger.Launch(); 

당신을 위해 디버거를 시작할 것이다. 시도 해봐.

1

나는 예외 처리

당신이 그것을 너무 많이가 나에게 소리 있습니다. 오직 특정 예외 유형을 잡으십시오. 절대로 예외를 잡으십시오. 이제 다른 예외 유형을 던지면 응용 프로그램이 처리되지 않은 예외로 폭탄을 터뜨릴 수 있습니다. 어느 것이 당신의 dev 컴퓨터에 JIT 디버거 대화 상자를 가져 오며, 이는 고객 컴퓨터의 자비로운 끝입니다.

System.Diagnostics.Debugger를 사용하는 것이 좋지만 #ifdef DEBUG로 감싸주십시오. 고객이 가지고 있지 않습니다.

관련 문제