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

Publicado por Marcelo A. B. Slomp 29/04/2009

[ Hits: 15.486 ]

Download trycatch.tar.gz




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

  



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

Scripts recomendados

Números Primos

Máquina virtual

Estatística

programa para solucionar problemas com triangulos

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


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário