Pergunta

Eu abri um projeto (criado em D2007 / 08) em D2009 e seria compilar mas jogar toneladas de exceções quando executado. Coisa estranha, mas eu sei do projeto uma confusão, então eu quero ir em frente e corrigi-lo. Bem, não realmente corrigir tudo isso, apenas torná-lo trabalho seria o suficiente.

Quando eu corri, eu tenho algumas Notificação Exceção Debugger (o diálogo mensagem pouco com Break, Continue, botões de ajuda) e eu queria continuar e ver se talvez trabalho quando saltar sobre a exceção. Eu chequei a pouco "Ignorar este tipo de exceção" caixa de seleção no canto inferior esquerdo e clicar em Continuar. Agora eu já não obter a notificação de exceção, mas o aplicativo ainda não for executado. Acabei de receber um par de caixas de erro vagas e têm muito pouca ideia do que está acontecendo.

Eu gostaria de reativar o tipo de exceção que eu previamente selecionado para ser ignorado. Mas eu não posso encontrar a qualquer lugar opção. Onde devo procurar para isso? Alguém pode ajudar?

Foi útil?

Solução

A seguir é extraído esta página na Delphi Q & A por Rob Kennedy : (CC licenciado) embora diga respeito a Delphi 2005 pode ajudar

.

Por que eu continuo recebendo mensagens de erro mesmo depois de eu ter escrito um manipulador de exceção?

Em suas configurações padrão, os Delphi IDE notifica sempre que ocorre uma exceção em seu programa, como na Figura 1. O que é importante perceber é que, nesse ponto, nenhum de código de manipulação de exceção do seu programa foi executado ainda. É tudo em si Delphi; seu estatuto especial como um depurador lhe permite obter a primeira notificação de qualquer exceção em seu programa, antes mesmo de seu programa sabe sobre isso.

enter descrição da imagem aqui

Evitar notificação

Se você não quiser ser notificado quando ocorre uma exceção, você tem algumas opções.

  • Você pode usar “pontos de interrupção avançados” da Delphi para a manipulação de exceção disable em torno de uma região de código. Para começar, defina um ponto de interrupção na linha de código onde deseja que o IDE para ignorar exceções. Clique com o botão direito do mouse sobre o ponto de ponto de interrupção na sarjeta e abrir o diálogo ponto de interrupção-propriedade. Na seção avançada são algumas caixas de seleção. (Ver Figura 2) Limpe a caixa de “Break” para impedir que o depurador de interromper seu programa naquela linha, e definir o “Ignorar exceções subseqüentes” caixa.

    Depois, definir outro ponto de interrupção onde deseja que o depurador para retomar o processamento de exceções. Alterar suas propriedades para lidar com exceções subseqüentes.

enter descrição da imagem aqui

  • Você pode dizer que o depurador para ignorar certos tipos de exceções. A Figura 3 mostra as opções de linguagem de exceção da Delphi. Adicionar uma classe de exceção para a lista, e todas as exceções desse tipo e de quaisquer tipos descendentes passará para o seu programa sem Delphi interferir.

enter descrição da imagem aqui

  • Em uma opção relacionada com a anterior, você pode dizer o depurador não interromper em quaisquer excepções. Para fazer isso, desmarque a “Notificar sobre exceções linguagem” caixa de seleção.

  • Finalmente, você pode desligar integrado depuração completamente. Delphi não vai notificá-lo de exceções, e ele também não vai parar em pontos de interrupção ou permitir o uso do botão “Pausa”. Desligue integrado depuração nas opções do depurador, como mostrado na Figura 5 para Delphi 2005.

enter descrição da imagem aqui

Outras dicas

Eu encontrei os tipos de exceção ignorados na

(Main menu) Tools >> Options >> Debugger Options >> CodeGear Debuggers >> Language Exceptions >> e há a lista de tipos de exceção ignorado.

É um pouco mais escondido do que em D2005, mas muito próximo ao que foi dito no artigo referenciado por Stuart Dunkeld.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top