Tratamento
de erros
C - Tratamento de erros
A linguagem C não fornece suporte
direto para o tratamento de erros, mas fornece acesso em nível inferior na forma
de valores de retorno. A maioria das chamadas de função C ou mesmo Unix
retornam -1 ou NULL em caso de erro e configuram um código de erro errno. É
definido como uma variável global e indica que ocorreu um erro durante qualquer
chamada de função.
Portanto, um programador C pode
verificar os valores retornados e executar as ações apropriadas, dependendo do
valor de retorno. É uma boa prática,
definir errno como 0 no momento da inicialização de um programa. Um valor 0
indica que não há erro no programa.
Funções
A linguagem de programação C fornece funções perror () e
strerror () que podem ser usadas para exibir a mensagem de texto associada ao
erro.
·
perror () - exibe a string que recebe como parametro,
seguida por dois pontos, um espaço e, em seguida, a representação textual do
valor atual do erro.
·
strerror () - retorna um ponteiro para a
representação textual do valor atual do erro.
Vamos tentar simular uma condição de erro e tentar abrir um
arquivo que não existe. Aqui, estou usando as duas funções para mostrar o uso,
mas você pode usar uma ou mais maneiras de imprimir seus erros. O segundo ponto
importante a ser observado é que você deve usar o fluxo de arquivos stderr para gerar
todos os erros.
#include <stdio.h>
#include <errno.h>
extern int errno ;
int main () {
FILE * pf;
int errnum;
pf = fopen
("ola.txt", "rb");
if (pf == NULL) {
errnum = errno;
fprintf(stderr, "Valor do erro:
%d\n", errno);
perror("Erro exibido pela função
perror");
fprintf(stderr, "Erro ao tentar
abrir o ficheiro: %s\n", strerror( errnum ));
} else {
fclose (pf);
}
return 0;
}
0 comentários:
Enviar um comentário