CAPÍTULO 2
Programação visual com Software Livre
EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo.  Prólogo de Benoit Minisini


2.7 Controle de erros


É certo que, em algum momento, na maioria dos programas, seja culpa do usuário, seja pelo próprio fluxo da execução, ocorrem erros, como tentar apagar um arquivo que não existe, fazer uma divisão por zero, conectar a um servidor web que não responde, etc. Em todos estes casos, o Gambas mostra uma mensagem na tela e o programa é interrompido e deixa de funcionar. É evidente que esse é um comportamento que o desenvolvedor não deseja e deve tomar medidas aportunas para evitá-lo. A forma de fazer é implementando um controle de erros para que a aplicação saiba o que deve fazer nesses casos. Gambas implementa as instruções necessárias para capturar os erros e processá-lo segundo o desejo do programador. As instruções para isso são:

TRY Sentença: executa a sentença sem lançar o erro quando ocorre, o programa continua pela sentença que está depois do TRY,  tanto faz existir erro ou não. Só podemos saber se existe erro consultando a sentença ERRO que será verdadeiro ou falso. Por exemplo:

' Apagar arquivo que não existe
TRY KILL "/tmp/teste/"

'Comprovar se tivemos exito
IF ERROR THEN PRINT "Não foi possível apagar o arquivo"

FINALLY: É colocado no final de um procedimento. As instruções após essa sentença serão sempre executadas, tanto faz se houve um erro no procedimento ou não.

CATCH: se colocada no final de um procedimento. As instruções após essa sentença São executadas só se ocorrer um erro na execução do procedimento (incluindo os erros produzidos  em subrotinas ou funções chamadas a partir deste procedimento). Se existe uma instrução FINALY, terá de ser colocada na frente de CATCH.

Vamos ver um exemplo de FINALY e CATCH:

SUB PrintFile (Nome_Arquivo AS String)

DIM Arquivo AS File

DIM Linha AS String

OPEN Nome_Arquivo FOR READ AS #Arquivo

WHILE NOT EOF (Arquivo)

LINE INPUT #Arquivo Linha

PRINT Linha

WEND

FINALLY   '
Sempre vai ser executado, inclusive se houver erro

TRY CLOSE  #Arquivo

CATCH ' Só executa se houver erro

PRINT "Impossível mostrar o arquivo" ; Nome_Arquivo

END





Cópia literal

Extraído do livro “GAMBAS, programação visual com software Livre”, da editora EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoît Minisini

LICENSA DESTE DOCUMENTO


É permitido a cópia e distribuição da totalidade ou parte desta obra sem fins lucrativos. Toda cópia total ou parcial devera expressar o nome do autor e da editora e incluir esta mesma licença, adicionando se é uma cópia literal “Cópia literal”. Se é autorizada a modificação e tradução da obra  sem fins lucrativos sempre se deve constar na obra resultante  a modificação o nome da obra original o autor da obra original e o nome da editora e a obra resultante também deverá ser livremente reproduzida, distribuída, ao publico e transformada em termos similares ao exposto nesta licença.

Tradução

Cientista
 (Antonio Sousa)