다음을 통해 공유


마지막 오류 코드

오류가 발생하면 대부분의 시스템 함수는 일반적으로 0, NULL 또는 -1과 같은 오류 코드를 반환합니다. 또한 많은 시스템 함수는 마지막 오류 코드라는 추가 오류 코드를 설정합니다. 이 오류 코드는 실행 중인 각 스레드에 대해 별도로 유지 관리됩니다. 한 스레드의 오류는 다른 스레드의 마지막 오류 코드를 덮어쓰지 않습니다. 모든 함수는 SetLastError 또는 SetLastErrorEx 함수를 호출하여 현재 스레드의 마지막 오류 코드를 설정할 수 있습니다. 이러한 함수는 주로 DLL(동적 연결 라이브러리)을 위한 것이므로 호출 애플리케이션에 정보를 제공할 수 있습니다. 일부 함수는 성공하면 SetLastError 또는 SetLastErrorEx를 0으로 호출하여 가장 최근에 실패한 함수에서 설정한 오류 코드를 삭제하지만 다른 함수는 그렇지 않습니다.

애플리케이션은 GetLastError 함수를 사용하여 마지막 오류 코드를 검색할 수 있습니다. 오류 코드는 함수가 실패하도록 실제로 발생한 일에 대해 자세히 알려줄 수 있습니다. 시스템 함수에 대한 설명서는 함수가 마지막 오류 코드를 설정하는 조건을 나타냅니다.

시스템은 마지막 오류 코드로 설정하거나 이러한 함수에 의해 반환될 수 있는 일련의 오류 코드를 정의합니다. 오류 코드는 32비트 값입니다(비트 31이 최상위 비트임). 비트 29는 애플리케이션 정의 오류 코드용으로 예약되어 있습니다. 이 비트가 설정된 시스템 오류 코드가 없습니다. 애플리케이션에 대한 오류 코드를 정의하는 경우 이 비트를 설정하여 오류 코드가 애플리케이션에 의해 정의되었음을 나타내고 오류 코드가 시스템 정의 오류 코드와 충돌하지 않도록 합니다. 자세한 내용은 WinError.h 및 시스템 오류 코드를 참조하세요.