Artigo: 173652 - Última revisão: terça-feira, 21 de Novembro de 2006 - Revisão: 4.4 Erro: Filtro de excepção não processada não foi chamado dentro de depurador
Nesta páginaSintomasProcessos de Win32 podem instalar uma função de filtro de excepção não processada para chamar excepções que não são processadas numa __try / __except bloco numa base de todo o processo. Quando tal um processo de depuração, irá descobrir que o filtro de excepção não processada é nunca executado, mesmo quando coloca um ponto de interrupção nela. No entanto, quando o processo não está a ser depurado, o filtro de excepção não processada é denominado como previsto. CausaQuando chamado a partir de um processo a ser depurado, a função de API do Win32 UnhandledExceptionFilter() não chama o filtro de excepção não processada aplicação instalada. Nota A API UnhandledExceptionFilter() determina se o processo está a ser depurado. Se o processo está a ser depurado, a API UnhandledExceptionFilter passa a excepção para o depurador. Em seguida, a API UnhandledExceptionFilter chama o filtro de excepção não processada para o processo. ResoluçãoUnhandledExceptionFilter deverá chamar o filtro de excepção não processada aplicação instalada para processos que estão a ser depurados além não estiver a ser depurado. Uma forma para depurar uma função de filtro de excepção não processada é colocar um __try / __except bloco à volta de todo o código no main() ou WinMain() funciona da seguinte forma: Se não quiser adicionar novas __try __except blocos para depurar um filtro de excepção não processada, deverá utilizar outros métodos como, por exemplo rastreio como asserção, exporta e depurar código para validar o comportamento do processador de excepções. Ponto Da SituaçãoA Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo. Estão a investigar este erro e publicará novas informações na base de dados de conhecimento da Microsoft como fica disponível. Mais InformaçãoO objectivo de uma função de filtro de excepção não processada é atribuir um processo a oportunidade de responder às excepções que ocorrem fora qualquer __try / __except bloco. Filtros de excepção não processada são todo o processo; se qualquer thread faz com que uma excepção, mas não a processa, irá obter chamado o filtro de excepção não processada. Depois de chamada, a função filtro pode corrigir a causa da excepção e continuar a execução ou pode passar o erro para o suporte de excepção não processada predefinido, que termina o processo. Aplicações do Win32 podem instalar um filtro de excepção não processada todo o processo com a função de API SetUnhandledExceptionFilter(). O código de arranque do Microsoft Visual C++ C de tempo de execução (CRT) biblioteca implementa um __try / __except bloco volta a função main(). Quando é detectada uma excepção por este bloco, a função de filtro de excepção, nome _XcptFilter, é chamada. _XcptFilter faz duas coisas: mapeia as excepções de Win32 para sinais utilizados pela função signal() CRT e distribui sinais para as respectivas rotinas de tratamento adequadas. Se processador um sinal estiver definido como SIG_DFL (tal como acontece por predefinição), _XcptFilter chama a API UnhandledExceptionFilter(). A API UnhandledExceptionFilter() determina se o processo está a ser depurado. Se for, em seguida, UnhandledExceptionFilter passa a excepção primeiro para o depurador e, em seguida, é suposto para chamar filtro de excepção não processada do processo. Se o processo não está a ser depurado, UnhandledExceptionFilter chama o filtro de excepção não processada do processo. Consoante a função filtro de devolução, UnhandledExceptionFilter ou continuar a execução no ponto da excepção ou apresenta uma caixa de diálogo modal sistema informando o utilizador de que a aplicação deve ser terminados devido a uma excepção não processada. Passos para reproduzir o comportamentoCompilar o código de exemplo seguinte e, em seguida, defina um ponto de interrupção dentro MyUnFilter. Observe que o ponto de interrupção nunca é atingido.A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 173652
(http://support.microsoft.com/kb/173652/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo