function TOSFile.IsLastSystemCallSucceed: Boolean; begin result := GetLastError = ERROR_SUCCESS; end; function TOSFile.GetOSErrorString(const OSErrorCode: Integer): String; begin result := 'OS Error: ' + SysErrorMessage(OSErrorCode) + ' (' + IntToStr(OSErrorCode) + ')'; end; procedure TOSFile.IfOSErrorRaiseException; var OSErrorException: EOSError; begin if not IsLastSystemCallSucceed then begin OSErrorException := EOSError.Create(GetOSErrorString(GetLastError)); OSErrorException.ErrorCode := GetLastError; raise OSErrorException; end; end;