2013-01-30 5 views
0

vb.net 및 .NET 4.0 32 비트를 사용하는 winforms에서 사용자 정의 컨트롤에있는 컨트롤을 클릭하면 발생하는 사용자 정의 이벤트로 사용자 정의 컨트롤을 만들었습니다. 약간의 처리 후 기본 제어).이벤트 핸들러에서 예외가 삼킨 경우

이 컨트롤이 있는데, child이라고하고 두 번째 사용자 정의에서는 Parent 컨트롤을 기본 폼의 탭 컨트롤에로드합니다. 부모에서이 같은 일을 수행

Public Class Parent : Inherits ParentBase 

    Public Sub Child_SnapToObject(byval sender ..., byval e ...) Handles Child.SnapToObject 

     ' Do stuff here 

    End Sub 

    Public Sub Child_ScaleChanged(byval sender ..., byval e ...) Handles Child.ScaleChanged 

     ' Do stuff here 

    End Sub 

End Class 

이벤트 핸들러가 잘 실행 얻을, 그러나 그 (것)들에서 발생하는 모든 예외 그냥 디버깅 악몽 만드는 삼켜 얻을. 모든 이벤트에 해당됩니다.

Child은 별도의 프로젝트에서 정의됩니다. 나는 기본 컨트롤에서 이벤트를 통해 버블 링하는 이벤트 핸들러와 그 예외를 모두 확인했다. 반면에 예외는 생성자에서 발생합니다.

나는 이것이 정상적인 행동이라고 제안하는 것을 발견 할 수 없습니다 ... 이것이 버그인지, 그리고 어떻게 수정 될 수 있는지 누구나 알고 있습니까?

답변

0

내 사용자 정의 컨트롤이 다른 프로젝트에 있기 때문에 문제가 발생한 것으로 보입니다. 메뉴 옵션 "예외가 appDomain 또는 관리/네이티브 경계를 넘을 때 중단 ..."(도구 -> 옵션 -> 디버깅 -> 일반)에서 예외가 더 이상 삼키지 않습니다.

기본적으로 사용하도록 설정되어 있다고 생각합니다. 내 프로젝트는 VS2003 프로젝트에서 변환 한 것이므로 전환하는 동안 설정이 해제 된 것으로 가정합니다.

+0

기본적으로 활성화되어 있지 않습니다. 이 뒤에 무엇이 있는지보기가 어렵지만 64 비트 버전의 Windows에서 x86을 대상으로 삼을 때 예외적 인 삼키는 행동이 있습니다. –

+0

오, 기본적으로 사용하도록 설정 한 후에 기본적으로 사용하도록 설정되었습니다. 기본적으로 사용되지 않는 이유가 있습니까? 나는 지금 예외를 모두 던지기 때문에 크로스 도메인 일 것임에 틀림 없다. 나는 64 비트 문제에 대해 어제 읽었지 만, 32 비트를 대상으로 any-cpu 작업을하고 있기 때문에 그럴 수 있다고 생각하지 않습니까? –

관련 문제