사용자가 다음과 같은 오류를보고 할 때마다
System.Runtime.InteropServices.SEHException- 외부 구성 요소에서 예외가 발생 했습니까?
프로그래머로서 제가 원인을 파악하기 위해 할 수있는 일이 있습니까?
시나리오 : 한 사용자 (회사에서 작성한 프로그램 사용)가이 오류를보고했습니다. 이것은 일회성 오류 일 수도 있고 아닐 수도 있습니다. 그들은 지난 달에 컴퓨터가 두 번 '작동을 멈췄다'고 언급했습니다. 나는 경험을 통해 배웠습니다.이 설명을 너무 문자 그대로 받아들이지 않는 것은 일반적으로 컴퓨터와 관련된 누군가가 예상대로 작동하지 않음을 의미하기 때문입니다. 그들은 나에게 더 자세한 정보를 제공 할 수 없었고 기록 된 오류를 찾을 수 없었습니다. 따라서이 오류 일 수도 있고 아닐 수도 있습니다.
스택 추적에서 실제 오류는 interop 코드를 직접 호출하지 않는 클래스를 생성 할 때 발생했지만 개체가 DevExpress Grid에 데이터 바인딩 된 목록의 일부일 수 있다는 사실로 인해 복잡 할 수 있습니다.
일반적으로 프로그램을 종료하지만 무시하고 계속할 수있는 옵션이있는 처리되지 않은 예외 루틴에 의해 오류가 '발견'되었습니다. 오류를 무시하도록 선택한 경우 프로그램은 계속 작동하지만이 루틴이 다음에 실행될 때 오류가 다시 발생했습니다. 그러나 응용 프로그램을 닫고 다시 시작한 후에는 다시 발생하지 않았습니다.
문제의 컴퓨터는 스트레스를받지 않는 것 같았습니다. 그것은 비스타 비즈니스를 실행하고 있으며 2GB의 메모리를 가지고 있으며 작업 관리자에 따르면 약 200Mb에 불과한 우리 응용 프로그램에서 절반 정도만 사용했습니다.
관련성이있을 수도 있고 아닐 수도있는 다른 정보가 있습니다. 동일한 프로그램의 또 다른 섹션은 네이티브 dll 주변의 dotnet 래퍼 인 타사 구성 요소를 사용하며이 구성 요소에는 매우 가끔씩 발생하는 알려진 문제가 있습니다.
보호 된 메모리를 읽거나 쓰려고했습니다. 이것은 종종 다른 메모리가 손상되었음을 나타냅니다.
부품 제조사들은 이것이 우리가 자체적으로 사용하는 최신 버전의 부품에서 수정되었다고 말했지만 아직 고객에게 제공되지 않았습니다.
오류의 결과가 낮고 (작업이 손실되지 않고 프로그램을 다시 시작하고 원래 위치로 돌아가는 데 최대 1 분 밖에 걸리지 않음) 고객이 곧 새 버전을받을 수 있다는 점을 감안할 때 (업데이트 된 세 번째- 파티 구성 요소), 분명히 내 손가락을 교차시킬 수 있으며 오류가 다시 발생하지 않기를 바랍니다.
하지만 내가 할 수있는 일이 더 있습니까?