Compartilhar via


GetExceptionCode

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função recupera uma codificar que identifica o tipo de exceção que ocorreu.

GetExceptionCode pode ser chamado somente de dentro da expressão filtro ou exceção-bloco manipulador de um Tente-exceto manipulador de exceção.

Syntax

DWORD GetExceptionCode(void);

Parameters

Nenhum.

Return Value

O valor de retorno identifica o tipo de exceção, como mostra a seguinte lista:

  • EXCEPTION_ACCESS_VIOLATION
    O segmento tentado ler de ou de gravação para um endereço virtual que ele não tem apropriado acessar para.
  • EXCEPTION_ARRAY_BOUNDS_EXCEEDED
    O segmento tentado acessar um elemento matriz que está out of limites e o subjacente hardware oferece suporte à verificação de limites.
  • EXCEPTION_BREAKPOINT
    Foi encontrada uma ponto de interrupção.
  • EXCEPTION_DATATYPE_MISALIGNMENT
    O segmento tentado ler ou dados de gravação que seja desalinhados no hardware que não ofereça alinhamento.

    De exemplo, 16 - bit valores devem ser alinhados no 2 - byte limites, 32 - bit valores em 4 - byte limites e assim por diante.

  • EXCEPTION_FLT_DENORMAL_OPERAND
    Um operando em um operação com ponto flutuante é muito pequeno para representar como um padrão ponto flutuante valor.
  • EXCEPTION_FLT_DIVIDE_BY_ZERO
    O segmento tentou dividir um ponto flutuante valor por um ponto flutuante Divisor de zero.
  • EXCEPTION_FLT_INEXACT_RESULT
    O resultado de uma operação com ponto flutuante não pode ser representado exatamente como um decimal fração.
  • EXCEPTION_FLT_INVALID_OPERATION
    Essa exceção representa um ponto flutuante exceção não incluída nessa lista.
  • EXCEPTION_FLT_OVERFLOW
    Expoente de uma operação com ponto flutuante é maior do que a magnitude permitido pelo correspondente tipo.
  • EXCEPTION_FLT_STACK_CHECK
    A pilha estourou ou underflowed as a result of um operação com ponto flutuante.
  • EXCEPTION_FLT_UNDERFLOW
    Expoente de uma operação com ponto flutuante é menor do que a magnitude permitido pelo correspondente tipo.
  • EXCEPTION_INT_DIVIDE_BY_ZERO
    O segmento tentou dividir um valor inteiro por um divisor inteiro de zero.
  • EXCEPTION_INT_OVERFLOW
    O resultado de uma operação inteiro causou um contêm out of o bit mais significativo do resultado.
  • EXCEPTION_NONCONTINUABLE_EXCEPTION
    O segmento tentou continuar execução após Ocorreu uma exceção noncontinuable.
  • EXCEPTION_PRIV_INSTRUCTION
    O segmento tentado executar uma instrução cuja operação não é permitida o atual modo máquina.
  • EXCEPTION_SINGLE_STEP
    Um interceptar rastrear ou outro único-instrução mecanismo sinalizado que uma instrução foi executar.

Remarks

O arquivo cabeçalho Excpt.h deve ser explicitamente incluído para usar GetExceptionCode.

GetExceptionCode pode ser chamado somente de dentro da expressão filtro ou exceção-bloco manipulador de um Tente-exceto declaração. Expressão de filtro é avaliado se ocorrer uma exceção durante a execução das Tente bloco e ele determina se a exceto bloco é executado.

A expressão filtro pode invocar uma função filtro. A função filtro não é possível chamar GetExceptionCode. No entanto, o valor de retorno do GetExceptionCode Pode ser passado como um parâmetro para uma função filtro.

O valor de retorno da função GetExceptionInformation também podem ser passados como um parâmetro para uma função filtro. GetExceptionInformation Retorna um ponteiro para uma estrutura que inclui a exceção-codificar informações.

O seguinte exemplo de código mostra a estrutura de um Tente-exceto declaração.

try 
{ 
    // try block 
} 
except (FilterFunction(GetExceptionCode()) 
{ 
    // exception handler block 
} 

Na maiúsculas e minúsculas de aninhados Tente-exceto Instruções, a expressão filtro DE CADA declaração é avaliada até que uma é avaliada como EXCEPTION_EXECUTE_HANDLER ou EXCEPTION_CONTINUE_EXECUTION. Cada expressão filtro pode invocar GetExceptionCode Para codificar a exceção get.

Codificar a exceção retornada é o codificar gerada por uma exceção hardware, ou a codificar especificado na função RaiseException para uma exceção software-generated.

Quando manipulação de exceção ponto de interrupção, o ponteiro de instrução no registro de contexto deve ser incrementada para continuar a partir esta exceção.

Exceções que ocorrer através de limites PSL deve se comportam exatamente como exceções entre funções no mesmo processo, com exceção de que a exceção não pode ser continuada com EXCEPTION_CONTINUE_EXECUTION.

Requirements

Header excpt.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Exception Functions
GetExceptionInformation
RaiseException