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.371 Categoria: C/C++ Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

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

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

Obtendo o tempo em C

Resposta Dinâmica!

Crud em C++ orientado a objetos com banco de dados MySQL

Rand_bg

Cálculo de Fatorial usando Loop

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.