Função SetErrorMode (errhandlingapi.h)
Controla se o sistema manipulará os tipos especificados de erros graves ou se o processo os manipulará.
Sintaxe
UINT SetErrorMode(
[in] UINT uMode
);
Parâmetros
[in] uMode
O modo de erro do processo. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Use o padrão do sistema, que é exibir todas as caixas de diálogo de erro. |
|
O sistema não exibe a caixa de mensagem critical-error-handler. Em vez disso, o sistema envia o erro para o processo de chamada.
A prática recomendada é que todos os aplicativos chamem a função SetErrorMode em todo o processo com um parâmetro SEM_FAILCRITICALERRORS na inicialização. Isso é serve para impedir que as caixas de diálogo de modo de erro desloquem o aplicativo. |
|
O sistema corrige automaticamente falhas de alinhamento de memória e as torna invisíveis para o aplicativo. Ele faz isso para o processo de chamada e todos os processos descendentes. Esse recurso só tem suporte em determinadas arquiteturas de processador. Para obter mais informações, consulte a seção Comentários.
Depois que esse valor é definido para um processo, as tentativas subsequentes de limpar o valor são ignoradas. |
|
O sistema não exibe a caixa de diálogo Relatório de Erros do Windows. |
|
A função OpenFile não exibe uma caixa de mensagem quando falha ao localizar um arquivo. Em vez disso, o erro é retornado ao chamador. Esse modo de erro substitui o sinalizador OF_PROMPT . |
Retornar valor
O valor retornado é o estado anterior dos sinalizadores de bits no modo de erro.
Comentários
Cada processo tem um modo de erro associado que indica ao sistema como o aplicativo responderá a erros graves. Um processo filho herda o modo de erro de seu processo pai. Para recuperar o modo de erro do processo, use a função GetErrorMode .
Como o modo de erro está definido para todo o processo, você deve garantir que os aplicativos multi-threaded não definam sinalizadores de modo de erro diferentes. Fazer isso pode levar a tratamento de erros inconsistentes.
O sistema não torna as falhas de alinhamento visíveis para um aplicativo em todas as arquiteturas de processador. Portanto, especificar SEM_NOALIGNMENTFAULTEXCEPT não é um erro nessas arquiteturas, mas o sistema é livre para ignorar silenciosamente a solicitação. Isso significa que sequências de código como as seguintes nem sempre são válidas em computadores x86:
C++ |
---|
SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT); fuOldErrorMode = SetErrorMode(0); ASSERT(fuOldErrorMode == SEM_NOALIGNMENTFAULTEXCEPT); |
Visual Studio 2005: Ao declarar um ponteiro para uma estrutura que pode não ter dados alinhados, você pode usar o __unaligned palavra-chave para indicar que o tipo deve ser lido um byte por vez. Para obter mais informações, consulte Alinhamento de dados do Windows.
Windows 7: Os chamadores devem favorecer SetThreadErrorMode em vez de SetErrorMode , pois ele é menos disruptivo para o comportamento normal do sistema.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | errhandlingapi.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de