Compartilhar via


Usando a recuperação e a reinicialização do aplicativo

Um aplicativo pode usar o ARR (Application Recovery and Restart) para salvar dados e informações de estado antes que o aplicativo seja encerrado devido a uma exceção sem tratamento ou quando o aplicativo parar de responder. O aplicativo também é reiniciado, se solicitado.

Quando você se registra para recuperação ou reinicialização, as informações de registro são adicionadas ao processo. Relatório de Erros do Windows (WER) usa as informações de registro para chamar o retorno de chamada de recuperação e reiniciar o aplicativo. Por exemplo, se você se registrar para recuperação e seu aplicativo encontrar uma exceção sem tratamento, o WER exibirá uma caixa de diálogo para o usuário que dá ao usuário a opção de verificar uma solução online, fechar o programa ou depurar o programa. Se o usuário optar por marcar para uma solução ou fechar o programa, o WER chamará o retorno de chamada registrado e dará ao aplicativo a chance de salvar dados e informações de estado. Quando a recuperação for concluída, o aplicativo será encerrado.

Se você se registrar para reiniciar e seu aplicativo encontrar uma exceção sem tratamento, o WER exibirá a mesma caixa de diálogo para o usuário, mas dará a opção de reiniciar o programa em vez de fechar o programa. Se você se registrar para recuperação e reinicialização, a recuperação ocorrerá primeiro; em seguida, o aplicativo é encerrado e reiniciado.

Um aplicativo sem resposta é tratado de maneira semelhante. Um aplicativo será considerado sem resposta se não responder às mensagens do Windows por cinco segundos e o usuário tentar interagir com o aplicativo; o usuário verá (Não respondendo) na barra de título. O WER é ativado quando o usuário clica no botão fechar do sistema.

Você deve se registrar para recuperação ou reinicialização ou remover o registro, antes que o aplicativo não responda ou encontre uma exceção sem tratamento. No entanto, no retorno de chamada de recuperação, você pode alterar a linha de comando de reinicialização.

Para obter detalhes sobre como registrar-se para recuperação ou reinicialização, consulte os seguintes tópicos:

Para obter exemplos que implementam os recursos de recuperação e reinicialização, consulte os exemplos AppRecovery e AppRestart no SDK do Windows localizado na pasta WinBase\WindowsErrorReporting.