0Pricing
C Academy · Aula

Tratamento de exceções em C

Implemente estratégias robustas de tratamento de erros sem um mecanismo integrado de exceções.

Tratamento de exceções em C é uma aula grátis de C Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 3 aulas no total.

Introdução ao tratamento de exceções

Tratamento de exceções em C

Ao contrário de linguagens como C++ e Java, C não possui tratamento de exceções integrado.

Nesta lição, você aprenderá:

  • Como tratar erros usando valores de retorno.
  • Como usar setjmp e longjmp para o tratamento de exceções.
  • Como usar errno para tratar erros do sistema.
Tratamento de exceções em C — ilustração 1

Tratando erros com valores de retorno

Tratando erros com valores de retorno

A maneira mais simples de tratar erros em C é usar valores de retorno.

Exemplo:

int divide(int a, int b) { if (b == 0) return -1; // Error code return a / b; }

O chamador verifica o valor de retorno em busca de erros.

Exemplo: tratamento de erros com valores de retorno

Exemplo: tratamento de erros com valores de retorno

Este programa verifica se há divisão por zero usando valores de retorno.

#include <stdio.h>

int divide(int a, int b) {
    if (b == 0) {
        printf("Error: Division by zero!\n");
        return -1;
    }
    return a / b;
}

int main() {
    int result = divide(10, 0);
    if (result != -1) {
        printf("Result: %d\n", result);
    }
    return 0;
}

Usando setjmp e longjmp para o tratamento de erros

Usando setjmp e longjmp para o tratamento de erros

As funções setjmp e longjmp permitem saltos não locais, simulando o tratamento de exceções.

Etapas:

  • Use setjmp() para marcar um ponto de recuperação.
  • Use longjmp() para voltar quando ocorrer um erro.

Exemplo: usando setjmp e longjmp

Exemplo: usando setjmp e longjmp

Este programa usa setjmp e longjmp para o tratamento de erros.

#include <stdio.h>
#include <setjmp.h>

jmp_buf buffer;

void errorHandler() {
    printf("Error occurred! Jumping back to safe state.\n");
    longjmp(buffer, 1);
}

int main() {
    if (setjmp(buffer) == 0) {
        printf("Executing main program...\n");
        errorHandler();
    } else {
        printf("Recovered from error.\n");
    }
    return 0;
}

Usando errno para tratar erros do sistema

Usando errno para tratar erros do sistema

A variável errno armazena códigos de erro das chamadas do sistema.

Exemplo:

#include

Funções como fopen() definem errno quando ocorrem erros.

Exemplo: usando errno para manipular arquivos

Exemplo: usando errno para manipular arquivos

Este programa verifica errno ao abrir um arquivo inexistente.

#include <stdio.h>
#include <errno.h>

int main() {
    FILE *file = fopen("nonexistent.txt", "r");
    if (!file) {
        perror("Error opening file");
    }
    return 0;
}

Práticas recomendadas para o tratamento de erros

Práticas recomendadas para o tratamento de erros

Para gerenciar erros de maneira eficaz:

  • Verifique os valores de retorno das funções.
  • Use errno para tratar erros do sistema.
  • Use setjmp e longjmp somente quando necessário.

Resumo

Resumo

Nesta lição, você aprendeu:

  • Como tratar erros usando valores de retorno.
  • Como setjmp e longjmp simulam o tratamento de exceções.
  • Como usar errno para detectar erros do sistema.

Esta é a conclusão da seção Depuração e Tratamento de Erros em C!

Tratamento de exceções em C — ilustração 10

Perguntas Frequentes

A aula “Tratamento de exceções em C” é grátis?

Sim — o texto completo de “Tratamento de exceções em C” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 3 aulas no total.

O que vou aprender em “Tratamento de exceções em C”?

Implemente estratégias robustas de tratamento de erros sem um mecanismo integrado de exceções. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C Academy?

Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.

Quanto tempo leva a aula “Tratamento de exceções em C”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C Academy?

Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Depuração com GDB
  2. Erros comuns em tempo de execução
  3. Tratamento de exceções em C
← Voltar para C Academy