A chamada exceção refere-se a um erro temporário causado por problemas no próprio programa ou operação inadequada por parte do usuário durante a execução do programa.
Pare a execução do programa e produza resultados errados. Qualquer pessoa que tenha escrito programas em Delphi certamente estará familiarizada com exceções. fonte de exceção
Existem muitos aspectos. Referência a um ponteiro nulo, atribuição fora dos limites, divisão por zero, etc. podem causar uma exceção. Se não forem tomadas medidas apropriadas para eventos anormais,
O manuseio inadequado pode fazer com que todo o programa trave. Felizmente, o Delphi pode lidar automaticamente com quase todas as exceções que possam ocorrer.
tratar.
1. Um exemplo simples de Delphi lidando automaticamente com exceções
1. No ambiente integrado Delphi (3.0), selecione o menu Ferramentas | Opções de Ambiente, e no Ambiente que aparece
Há uma opção Quebrar na exceção na página Preferências na janela Opções (no canto inferior esquerdo). Esta opção é por padrão
O status é selecionado, de forma que caso ocorra alguma exceção ao executar o programa no ambiente integrado Delphi, o programa será automaticamente interrompido e retornará
No estado de depuração do Delphi, o cursor permanece no código onde ocorre a exceção para que os programadores possam modificá-lo. Agora clique nesta opção para torná-la indisponível
Verifique e OK.
2. Crie um novo projeto e salve-o como Excep.dpr (será útil posteriormente), e salve a unidade correspondente como Excpunit.pas no Form1;
Coloque um componente TmaskEdit nele, defina sua propriedade EditMask como Date, depois coloque um componente Tbutton, clique duas vezes nele,
Escreva seu evento OnClick da seguinte maneira:
procedimento TForm1.BitBtn1Click(Remetente: TObject);
var k:inteiro;
começar
k:=0;
k:=9 div k;{Uma exceção de divisão por 0 será gerada aqui}
fim;
3. Salve e execute o programa. Basta escrever um ou dois números em MaskEdit1 e pressionar Enter. Isso irá gerar (também chamado de despertar).
Uma exceção aparece na seguinte janela:
Esta é uma exceção devido aos dados incompletos inseridos na caixa MaskEdit que o processa automaticamente.
Após “OK”, o programa continua a execução. Clique no Botão1, outra janela semelhante aparecerá, pois existe um
Divisão por exceção zero.
2. Os prompts do Delphi para situações anormais estão em inglês, que não é usado pelos chineses. Podemos interceptar essas exceções e implementá-las usando.
Dicas chinesas. As etapas específicas são as seguintes:
1. Modifique o evento OnClick do Button1 da seguinte forma:
procedimento TForm1.BitBtn1Click(Remetente: TObject);
var k:inteiro;
começar
k:=0;
tentar
k:=9 divk;
exceto
showmessage('O divisor não pode ser zero');
fim;
fim;
2. Salve e execute o programa. A caixa de prompt que aparece após clicar no Botão1 será substituída pela mensagem chinesa “O divisor não pode ser zero”. usar
A instrução try...except...end é um método comum de tratamento de exceções. A instrução após a palavra reservada try é executada se.
Caso ocorra uma exceção, a instrução entre as palavras reservadas except e end será executada. Caso contrário, a instrução após end será executada, substituindo assim a do Delphi.
Tratamento padrão de exceções. Outra afirmação semelhante é try...finally...end, que é o mesmo que try...except..
....A diferença com end é que independentemente de a instrução após try gerar uma exceção, a instrução após finalmente será definitivamente executada.
No entanto, para exceções como aquelas geradas pela caixa TmaskEdit, usar a instrução try é inútil porque não podemos encontrar
Um lugar para escrever declarações try. Só podemos resolver isso de outra maneira.
3. Todo projeto em Delphi possui um objeto Tapplication, que é um objeto invisível. pudermos
Ao modificar seu evento OnException, você pode controlar exceções especiais. Os métodos específicos são os seguintes:
1. Declare um processo MyException na classe do Form1. Este processo está relacionado ao evento OnException do Tapplication.
Mesmos parâmetros:
público
{Declarações públicas}
procedimento MinhaExceção(Remetente:TObject;E:Exceção);
2. Escreva o código do processo:
procedimento TForm1.MyException(Sender:TObject;E:Exception);
começar
se E for EDBEditError então showmessage('A entrada não está em conformidade com as regras')
outro
Application.ShowException(E); {Chamando tratamento de exceção padrão}
fim;
3. Atribua um valor ao evento OnException do Tapplication no evento OnCreate do Form1:
procedimento TForm1.FormCreate(Remetente: TObject);
começar
Application.OnException :=MinhaExceção;
fim;
4. Salve e execute o programa, insira um ou dois números na caixa MaskEdit, pressione Enter e uma caixa de prompt em chinês aparecerá.
Substitua a caixa de prompt original em inglês.
4. Gostaríamos aqui de lembrar a todos que prestem atenção a três pontos:
1.Delphi resume todas as exceções em uma classe, ou seja, classe de exceção (Cada exceção específica é considerada).
Um caso especial, em sysutils.pas no diretório c:program files orlandDelphi 3source tlsys
Existe uma definição de classe de exceção.
2. O objeto Tapplication fornece um processo HandleException para lidar com erros não tratados que são evocados no programa.
Eventos de exceção, quando atribuímos um valor ao evento OnException do Tapplication, HandleException chamará o novo
Procedimento para substituir a exibição de mensagem de erro padrão. Somos livres para organizar o conteúdo exibido em nosso próprio processo para alcançar Han
efeito de transformação.
3. Usamos a instrução de julgamento IF para obter a exceção especificada. Podemos usar um método simples para obter o nome da exceção especificada.
Voltando ao exemplo do início do artigo, aqui selecionamos a opção Quebrar na exceção, executamos o programa novamente e inserimos
Números incorretos fazem com que MaskEdit1 gere uma exceção e a seguinte janela será exibida:
O EDBEditError na segunda linha da janela é o nome da exceção.
se E for EDBEditError então showmessage('A entrada não atende aos requisitos')
Foi escrito com base neste nome. É aqui que você pode obter as informações quando não souber o nome exato da exceção. Usando isso
Tenha cuidado ao lidar com eventos de exceção porque você substituiu o tratamento de exceções padrão do Delphi.
Isso pode fazer com que o sistema trave.
O programa acima é executado com sucesso no Windows 95 Delphi 3.0.