SetErrorMode 함수(errhandlingapi.h)

시스템에서 지정된 유형의 심각한 오류를 처리할지 또는 프로세스에서 처리할지 여부를 제어합니다.

구문

UINT SetErrorMode(
  [in] UINT uMode
);

매개 변수

[in] uMode

프로세스 오류 모드입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
0
모든 오류 대화 상자를 표시하는 시스템 기본값을 사용합니다.
SEM_FAILCRITICALERRORS
0x0001
시스템에 위험 오류 처리기 메시지 상자가 표시되지 않습니다. 대신 시스템은 호출 프로세스에 오류를 보냅니다.

모든 애플리케이션이 시작 시 SEM_FAILCRITICALERRORS 매개 변수를 사용하여 프로세스 전체 SetErrorMode 함수를 호출하는 것이 가장 좋습니다. 이는 오류 모드 대화 상자가 애플리케이션을 중단하지 않도록 하기 위한 것입니다.

SEM_NOALIGNMENTFAULTEXCEPT
0x0004
시스템은 자동으로 메모리 맞춤 오류를 수정하고 애플리케이션에 보이지 않게 만듭니다. 호출 프로세스 및 모든 하위 프로세스에 대해 이 작업을 수행합니다. 이 기능은 특정 프로세서 아키텍처에서만 지원됩니다. 자세한 내용은 주의 섹션을 참조하세요.

프로세스에 대해 이 값을 설정한 후에는 값을 지우려는 후속 시도가 무시됩니다.

SEM_NOGPFAULTERRORBOX
0x0002
시스템에서 Windows 오류 보고 대화 상자를 표시하지 않습니다.
SEM_NOOPENFILEERRORBOX
0x8000
파일을 찾지 못하면 OpenFile 함수에 메시지 상자가 표시되지 않습니다. 대신 오류가 호출자에게 반환됩니다. 이 오류 모드는 OF_PROMPT 플래그를 재정의합니다.

반환 값

반환 값은 오류 모드 비트 플래그의 이전 상태입니다.

설명

각 프로세스에는 애플리케이션이 심각한 오류에 대응하는 방법을 시스템에 나타내는 연결된 오류 모드가 있습니다. 자식 프로세스는 부모 프로세스의 오류 모드를 상속합니다. 프로세스 오류 모드를 검색하려면 GetErrorMode 함수를 사용합니다.

오류 모드는 전체 프로세스에 대해 설정되므로 다중 스레드 애플리케이션이 다른 오류 모드 플래그를 설정하지 않도록 해야 합니다. 이렇게 하면 일관되지 않은 오류 처리가 발생할 수 있습니다.

시스템은 모든 프로세서 아키텍처에서 애플리케이션에 맞춤 오류를 표시하지 않습니다. 따라서 SEM_NOALIGNMENTFAULTEXCEPT 지정하는 것은 이러한 아키텍처에서 오류가 아니지만 시스템은 요청을 자동으로 무시할 수 있습니다. 즉, 다음과 같은 코드 시퀀스가 x86 컴퓨터에서 항상 유효하지는 않습니다.

C++
SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT); 
fuOldErrorMode = SetErrorMode(0); 
ASSERT(fuOldErrorMode == SEM_NOALIGNMENTFAULTEXCEPT);
아이테니엄: 시스템에서 맞춤 오류를 자동으로 수정하려면 애플리케이션이 SEM_NOALIGNMENTFAULTEXCEPT SetErrorMode 를 명시적으로 호출해야 합니다. 기본 설정은 시스템이 애플리케이션에 맞춤 오류를 표시하도록 하는 것입니다.

Visual Studio 2005: 정렬된 데이터가 없을 수 있는 구조체에 대한 포인터를 선언할 때 __unaligned 키워드(keyword) 사용하여 형식을 한 번에 하나씩 읽어야 함을 나타낼 수 있습니다. 자세한 내용은 Windows 데이터 맞춤을 참조하세요.

Windows 7: 호출자는 시스템의 정상적인 동작에 덜 방해가 되므로 SetErrorMode보다 SetThreadErrorMode를 선호해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 errhandlingapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

오류 처리 함수

오류 모드

GetErrorMode

SetThreadErrorMode