2012-09-06 3 views
1

내 응용 프로그램에서 다양한 예외를 포착하고 추적하기 위해 내 자신의 vectored 예외 처리기를 등록합니다.벡터 처리 예외 처리기에서 0x40010006 예외를 처리하는 방법은 무엇입니까?

간혹 OutputDebugString 함수에 의해 throw되는 0x40010006 코드가있는 예외가 발생합니다. 확실히, 나는 그것을 무시하고 싶습니다. 이 경우 적절한 반환 값은 무엇입니까 EXCEPTION_CONTINUE_EXECUTION 또는 EXCEPTION_CONTINUE_SEARCH?

답변

2

ntstatus.h SDK 헤더 파일에 예외 코드가 나열되어 있습니다. 이 중 하나는 DBG_PRINTEXCEPTION_C입니다. Ctrl + C를 눌러 트리거 할 가능성이 있습니다.

값이 0x80000000 미만인 예외 코드는 비공식적 인 것이며 실제 문제를 나타내는 지표는 아닙니다. 일반적으로 사용자는 인식하지 못하고 명시 적으로 처리하고 싶지 않은 예외를 혼동해서는 안됩니다. Windows가 EXCEPTION_CONTINUE_SEARCH를 반환하여 처리기를 계속 검색하게하면 디버거가이 경우에 catch합니다.

+0

0x80000000보다 작은 값을 가진 코드가 정보 제공 용임을 어떻게 알 수 있습니까? 나는 코드 공간에 대해 더 많이 읽을 수있는 곳을 이해하려고 노력하고있다. 감사. –

+0

@RussCox 나는 그가 여기에서 왔다고 생각한다 : http://msdn.microsoft.com/en-us/library/windows/desktop/ff485841(v=vs.85).aspx – Alexandru

+0

EXCEPTION_CONTINUE_EXECUTION은 catch (와)는 동일하지 않다. ..) 예외가 발생하는 동일한 주소에서 실행을 계속하기 때문에. 실제로 예외의 원인을 수정하고 프로그램 실행으로 돌아갈 수 있습니다. – marcinj

관련 문제