2010-04-15 2 views

답변

0

좋아, 나는 정말로 이런 종류의 기능이 미래의 .net IDE에 포함되어야한다고 생각하기 때문에 내 자신의 질문에 대답 할 것이다.

코드를 디버깅하고 스테핑하는 동안 코드 섹션이 강조 표시되면 마우스 오른쪽 단추를 클릭 한 다음 예외를 선택하십시오. 드롭 다운 목록에는 미리 정의 된 예외가 제공되거나 아니면 일반적인 새로운 예외가 제공됩니다. 이렇게하면 특정 테스트 케이스를 작성하지 않고도 코드를 훨씬 빨리 테스트 할 수 있습니다.

필자도 테스트 케이스 작성은 항상 가능하다고 생각하지 않습니다. 예를 들어 웹 서비스에서 데이터를 요청한다고 가정 해 보겠습니다. 그리고 나는 SSL Trust Failure, Connection refused, 404 resource not found를 제외하고 다음과 같은 예외를 잡으려고한다. 요청한 서비스가 귀하의 것이 아닌 경우이 테스트 케이스를 작성하는 방법이 있다면 나는 놀라실 것입니다. 이러한 경우에는 단계별로 수행 할 수 있다면 얼마나 좋을지 상상해보십시오. 필요한 시점에서 마우스 오른쪽 단추를 클릭하고 새 예외를 throw하도록 선택한 다음 대화 상자를 통해 원하는 예외 유형을 정확하게 선택하십시오. . 이 경우에는 새로운 예외 유형을 테스트 할 때마다 디버그 모드에서 한 번만 코드를 실행하고 오른쪽 클릭 만하면됩니다. 디버거를 중지/시작할 필요가 없으며 일시적으로 예외가 발생하여 궁극적으로 프로덕션 릴리스가 필요할 수도 있습니다.

내가 알고있는 한 현재까지는 불가능한 catch 섹션에서 빠져 나올 수 있어야한다고 언급 할 것입니다.


어쨌든, 지금까지의 내가 동적으로 디버그 시간에이 같은 예외을 실행하는 최선의 방법을 알고 - 드래그 이전에 해당 결코 실행하지하는 것이 코드에 의존 한 점에 디버그 위치를 드롭하는 것입니다 따라서 현재 코드 행을 무효로 만듭니다.이것이 내가하는 방법을 아는 유일한 방법이므로, 다른 방법을 알고 있다면 더 나은 대답을 남겨주세요.

은 2 호선

  1. 하면 드래그 라인 (2) 상에 디버거를 놓아 줄 일을 실행하지 않으면
  2. 는 다음 디렉터리

에서 파일 만들기 디렉터리 만들기 내 요점을 설명하기 위해 이제 코드가 정상적으로 실행되었을 때 디렉토리가 존재하지 않기 때문에 예외가 발생합니다.

롤 - 내가 VS 팀에서 일하면 훨씬 더 행복한 개발자가 될 것입니다.

+0

향후 릴리스에서이 기능을 추가하려면 Connect (http://connect.microsoft.com/visualstudio/)에서 요청을 입력하십시오. 그런 다음 여기에 요청 URL을 게시하면 투표 할 수 있습니다. –

0

내 조언이 프로그램은 사용자가보고있는 점에서 예외가 발생합니다 것을 함께 인해 데이터를 입력, 보장하는 테스트 케이스를 넣어하는 것입니다.

예외가 발생할 수있는 경우에만 try/catch가 필요하므로 어딘가에 던져 야합니다. 즉 트리거하는 경우입니다.

대안은 문제의 코드 줄에서 호출되는 일종의 모의 개체를 제공하는 것입니다.이 작업에서는 필요한 예외를 throw하는 것이 유일한 작업입니다. 프로그래밍 디버거가 중단 될 수 있습니다 경우

1

당신이 만약 그렇다면, 다음, 묻는 :

Debugger.Break(); 

당신이 최적화 된 경우 빌드가 비활성화, 그 디버깅 시점에서 예외를 throw 할 경우, 당신이 할 수있는 바로 편집하고, 바로 뒤에 throw new Exception(); 문을 삽입하고 실행 지점을 해당 줄로 이동 한 다음 해당 줄을 건너 뛰고 디버거가 catch로 점프합니다. 그런 다음 방금 삽입 한 선을 제거하면됩니다. 예외를 던지기 위해 실제 코드를 삽입하지 않고는 그렇게 할 수 없습니다.

관련 문제