Pular para o conteúdo

Exceções em C através de try-throw-catch

Baseado em uma questão de um usuário do VOL, segue uma implementação para tratamento de exceções em C através da construção de estamentos try-throw-catch.

O tópico original pode ser visto em: http://www.vivaolinux.com.br/topico/C-C++/C-e-Java
Marcelo A. B. Slomp mslomp
Hits: 16.369 Categoria: C/C++ Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Baseado em uma questão de um usuário do VOL, segue uma implementação para tratamento de exceções em C através da construção de estamentos try-throw-catch.

O tópico original pode ser visto em: http://www.vivaolinux.com.br/topico/C-C++/C-e-Java
Download trycatch.tar.gz Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

/*
   arquivo: trycatch.h
   descrição: simples implementação c para estamentos try-throw-catch
   autor: Marcelo A. B. Slomp
*/
#ifndef _TRYCATCH_H_
#define _TRYCATCH_H_
#include <setjmp.h>

#define try       jmp_buf jmp; switch(setjmp(jmp)){case 0:
#define catch(e)   break;case e:
#define throw(e)   longjmp(jmp,e)

#endif /* _TRYCATCH_H_ */

================================================
================================================

/*
   arquivo: testetry.c
   descrição: demonstração para trycatch.h
   autor: Marcelo A. B. Slomp
*/
#include <stdio.h>
#include "trycatch.h"

#define EXCECAO  1001

int main(int argc, char** argv) {
   try {
      printf("Disparando exceção\n");
      throw(EXCECAO);
      printf("Essa linha nao será executada");
   }
   catch(EXCECAO) {
      printf("Exceção tratada\n");
   }
   }
   return 0;
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Maior ou menor

Preloader.c - Adaptação do Tarik Ahmad (Thiago Alexandre) para linux

Menu com teclas direcionais

MeikeNeime - Programa gerador de nomes aleatórios

jogo da cobra em c

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.