2010-03-11 3 views
5

오류 처리는 좋은 생각입니다. :) 디버깅 할 때 방해가 될 수 있습니다 - 특히 사용자에게 친숙한 좋은 메시지가 있습니다. VB6에서는 컴파일러가 에러 처리를 무시할 수있는 상자를 체크 할 수있었습니다. I found VS에서 비슷한 작업을 수행 할 수있는 대화 상자가 있지만 약 1 만 개가 아닌 10,000 개의 확인란이 있습니다. 프로덕션 컴파일이 필요할 때마다 변경하기에는 너무 많습니다.Visual Studio에서 try catch 무시 - 디버그 전용

VS를 설정하는 방법이 있습니까? 디버깅 모드에있을 때 한 세트의 조건이 생기고 프로덕션 환경에서 다른 것을 얻을 수 있습니까? ... 아니면 오류를 처리하고보다 효율적으로 디버깅하는 또 다른 방법이 있습니까?

감사

+0

중복 : http://stackoverflow.com/questions/893277/is-there-a-better-way-to-get-visual-studio-to-ignore-try-catch-in-debug-mode –

답변

1

당신은 당신의 방법이 속성을 추가 할 수 있습니다 원하는 경우

[Conditional("DEBUG")] 

또한 문 #endif // 이는 # 만약 사용할 수 있습니다.

+1

* 아주 * 추악한 코드를 만들려고합니다. VS.Net에서이를 처리하는 더 좋은 방법이 있습니다. –

+0

+1 나는 #if가 추악한 코드를 만든다는 것에 동의한다. 속성 메소드는 그렇게 생각하지 않는다. 그러나 제한적이다. –

3

예외 메뉴에서 디버그 메뉴를 사용해보십시오. 예외가 발생할 때 자동으로 중단되도록 설정할 수 있습니다.

#if !DEBUG 
    try { 
#endif 
     DoSomething(); 
#if !DEBUG 
    } catch (Exception ex) { 
     LogEx(ex); 
     throw new FriendlyException(ex); 
    } 
#endif 

또는 :

2

코드에서 나는 아마 뭔가를 할 것입니다. 더 일반적으로와 #if 이하의 :

#if DEBUG 
    public const bool DEBUG = true; 
#else 
    public const bool DEBUG = false; 
#endif 

try { 
    DoSomething(); 
} catch (Exception ex) { 
    if (DEBUG) throw; 
    LogEx(ex); 
    throw new FriendlyException(ex); 
} 

또는 범용 (P & P에서 라이브러리를 예외 처리 등) :

bool HandleException(Exception ex) { 
    return !DEBUG; 
} 

그러나, 당신의 진짜 문제는 바로 비주얼 스튜디오의 GUI 인 경우 - just use a macro.

관련 문제