Exceções em C através de try-throw-catch
Publicado por Marcelo A. B. Slomp 29/04/2009
[ Hits: 16.241 ]
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
/*
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;
}
Binário para Decimal, Hexa, Char
Lista Duplamente Encadeada em C
Nenhum comentário foi encontrado.
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Forçar resolução teimosa no Wayland
Como fazer um pendrive bootável utilizando a ferramenta Rufus
Servidor vs Computador Convencional
Como administrar uma rede Linux através da ferramenta Webmin
Alguém aqui mexe com arduino? (2)
Audio Failure on Acer Aspire AS4738 – Intel 5 Series HD Audio (Linux M... (1)









