domingo, 14 de junho de 2020

Linguagem C - Tratamento de erros


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;
}


Share:

0 comentários:

Enviar um comentário

Seguidores

Visitantes do blog

Pesquisar neste blogue

posts recentes

Traduzir