문제

System.Reflection.Emit를 사용하여 유형에 대한 래퍼를 생성하고 있습니다.언젠가는 원래 객체가 액세스시 오류 (FaultException)를 던질 수 있으며 오류는 내가 구현 한 내 try { } catch (Exception e) { }에 의해 포착되어야하지만 그렇지 않습니다.

코드는 ILSpy 에 의해 정확하게 표시됩니다. 라코 디스

코드 생성

어셈블리 생성을위한 코드입니다. 라코 디스

수정

이 예외는 IL 코드가 아닌 사용자 코드에 의해 포착됩니다.

분해

여기에서 고객의 일부 네임 스페이스를 삭제했습니다.마지막 몇 분 동안 쓰기 줄이 추가되었습니다. 라코 디스

수정 2

IL 코드에서 System.Exception를 던질 때 FaultException'1가 발생하기 전에 예외가 처리됩니다.ExceptionArgumentException로 테스트되었습니다.

도움이 되었습니까?

해결책 2

이것은 실제로 Visual-Studio 2010 버그 인 것 같습니다.잡히면 VS에서 모든 예외가 무시되지만 VS는 예외를 보여줍니다.

모든 예외가 무시되는 것은 아닙니다. 이것은 예외를 발생시키는 코드에 의존하는 것 같습니다. 생성 된 예외 (Emit를 통해)는 무시되고 외부 DLL의 예외는 무시되지 않습니다.

다른 팁

여기서는 모두 잘 작동합니다.중첩 된 예외 블록이 아닌 것이 확실합니까?

예 : 라코 디스

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