문제

'VE는 MSDN 도움말 문서를 통해 시각적 기본을 얻었습니다. 타이머를 사용하여 예제를 시도한 후 -라벨과 타이머 구성 요소를 디자이너로 드래그하고 다음을 구성 요소 서브 루틴에 추가합니다.

Label1.Text = My.Computer.Clock.LocalTime.ToLongTimeString

디버그 중 즉시 창의 출력은 다음과 같습니다.

Microsoft.visualBasic.dll에서 발생한 유형의 'System.invalidcastException'의 첫 번째 기회 예외
Microsoft.visualBasic.dll에서 발생한 유형의 'System.invalidcastException'의 첫 번째 기회 예외

컨텍스트 메뉴 구성 요소를 사용하여 이전 MSDN 예제에서 동일한 오류가 발생합니다. 내가해야합니까 Try...Catch...Finally 이 오류와 계속 진행하려고합니까? 아니면 더 심각한 것을 다루고 있습니까?

도움이 되었습니까?

해결책

첫 번째 기회 예외에 대해 무언가를 보면 호출 한 코드 내에서 예외가 발견되었지만 반드시 코드가 실패했음을 의미하지는 않습니다. 프로그램이 충돌하지 않고 코드가 실행되고 유효한 값을 반환하는 경우 문제가 없습니다. 또한 자신의 시도/캐치 블록을 구현할 때 첫 번째 기회 예외에 대한 디버그 창에 출력이 표시됩니다.

다른 팁

디버그 메뉴 -> 예외에서는 나중에 잡히는 경우에도 예외가 발생하면 디버거가 중지 될 수 있습니다. 무슨 일이 일어나고 있는지 알고 싶다면 이것이 가장 쉬운 방법입니다.

첫 번째 기회에서 예외는 예외의 세부 사항을 조사하십시오. 스택 프레임/트레이스 속성이 표시됩니다. 거기에서 오류가 발생하는 선이 있는지 확인해야합니다. 이것은 당신에게 도움이 될 것입니다.

IDE에서 도구> 옵션> 프로젝트 및 솔루션> VB 기본값 및 'ON'을 엄격하게 설정하는 옵션을 설정하십시오. 이는 프로젝트를 실행하는 것이 아니라 프로젝트를 컴파일 할 때 캐스팅 문제를 포착하는 데 도움이 될 수 있습니다.

'첫 번째 기회 execption'이 반드시 코드에 문제가 있음을 의미하지는 않습니다. IDE 또는 컴파일러 또는 기타 관련 구성 요소가 발생하여 오류를 처리했으며 프로세스에서 디버거가 알리고 예외가 바로 즉시 창에보고됩니다. 이것은 주제에 대한 훌륭한 게시물입니다.

http://blogs.msdn.com/davidklinems/archive/2005/07/12/438061.aspx

Debug 및 Diag of First Chance 예외를위한 빠르고 쉬운 솔루션은 다음과 같습니다.

AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;

그리고

private void CurrentDomainOnFirstChanceException(object sender, FirstChanceExceptionEventArgs firstChanceExceptionEventArgs)
    {
        if (firstChanceExceptionEventArgs.Exception is NullReferenceException)
        {
            // do your handling and debugging :)
        }
    }

런타임 중 여러 첫 번째 기회 예외는 예외 처리가 비싸기 때문에 응용 프로그램의 성능을 무너 뜨릴 수 있습니다. 특히 웹 앱에서. 이 핸들러를 추가하고 특정 첫 번째 기회 예외를보고 피/수정하려고 시도 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top