2011-08-19 3 views
2

현재 런타임 중에 xaml 코드를 개체로 변환하는 방법에 대한 책을 배우고 있습니다.Try-Catch 알 수없는 동작

try 
{ 
    ctrl = XamlReader.Load(xaml) as UserControl; 
} 
catch (Exception exc) 
{ 
    OnXamlResult(new XamlCruncherEventArgs(exc.Message)); return; 
} 

코드 내 내가 책에서했다, 아니다 :

나는 다음과 같은 코드가 있습니다.

문제는 try-catch가 제대로 작동하지 않는다는 것입니다. 적어도 지금까지는 알았습니다. 예외없이 포획

ctrl = XamlReader.Load(xaml) as UserControl; 

: 그것은 선에 도달 할 때 프로그램을 디버깅하는 동안 중지.

내가 잘못했거나이 문제를 어떻게 해결할 수 있습니까?

"xaml"은 문자열입니다. 그것은 텍스트 상자에서 취해지고 xaml이 사용자에 의해 정확하게 입력되면 프로그램은 xaml 코드를 object로 변환해야합니다. 그렇지 않으면 해당 오류가 표시됩니다.

프로그램이 반응하는 방식에 대해 디버그가 멈 춥니 다 (오류를 가리키는 Visual Studio로 돌아옵니다) 무한 주기로 진행되는 것처럼 행동하지 않는다고 말할 수 있습니다.

+3

기본 예외 디버거가 깨져서 디버거가 아닌 프로그램을 실행하려고 시도하지만 실행 파일을 명시 적으로 실행하려고 시도합니다. – sll

답변

3

아마도 예외가 발생하면 디버거가 작동하지 않을 것입니다. catch와 F5 내부에 중단 점을 지정하여 계속 진행하면 중단 점에 도달해야합니다.

"깨뜨림"에 의해 실패하지는 않는다는 것을 의미하지는 않습니다. 이는 예외의 잘못된 행에서 앱 실행을 일시 중지한다는 것을 의미합니다. 따라서이 경우에는 좋은 것입니다. > 예외 ... (Ctrl + Alt + E)

  • 공용 언어 런타임 -

    • 디버그 : Visual Studio를 사용하는 경우

      ,이 행동 "예외에 휴식"활성화/비활성화 할 수 있습니다 예외 사항에 따라 오른쪽 상자를 확인하십시오.

    예외 자체는 특별히 예외를 표시하지 않는 한 제공된 XAML 문자열을로드하는 데 문제가있을 수 있습니다.

  • +0

    예 코드가 try-catch에 도달 할 때마다 F5 키를 눌러 중단 점을 두지 않아도 예외가 전달됩니다 예외도 catch됩니다). 이 예외로 나를 괴롭히기 위해 어떻게 Visual Studio를 멈출 수 있습니까? –

    +0

    @AlexB 내 대답에서 언급 한 옵션의 선택을 취소해야합니다. –

    +0

    감사합니다. 나는 챔피언처럼 일하고있다. D. –