/usr/include/root/TException.h is in libroot-core-dev 5.34.19+dfsg-1.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | // @(#)root/base:$Id$
// Author: Fons Rademakers 21/09/95
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TException
#define ROOT_TException
//////////////////////////////////////////////////////////////////////////
// //
// Exception Handling //
// //
// Provide some macro's to simulate the coming C++ try, catch and throw //
// exception handling functionality. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef __CINT__
#include <setjmp.h>
#else
struct sigjmp_buf;
struct jmp_buf;
#endif
#ifndef ROOT_RConfig
#include "RConfig.h"
#endif
#ifndef ROOT_DllImport
#include "DllImport.h"
#endif
struct ExceptionContext_t {
#ifdef NEED_SIGJMP
sigjmp_buf fBuf;
#else
jmp_buf fBuf;
#endif
};
#ifdef NEED_SIGJMP
#define SETJMP(buf) sigsetjmp(buf,1)
#else
#define SETJMP(buf) setjmp(buf)
#endif
#define RETRY \
{ \
static ExceptionContext_t R__curr, *R__old = gException; \
int R__code; \
gException = &R__curr; \
R__code = SETJMP(gException->fBuf); if (R__code) { }; {
#define TRY \
{ \
static ExceptionContext_t R__curr, *R__old = gException; \
int R__code; \
gException = &R__curr; \
if ((R__code = SETJMP(gException->fBuf)) == 0) {
#define CATCH(n) \
gException = R__old; \
} else { \
int n = R__code; \
gException = R__old;
#define ENDTRY \
} \
gException = R__old; \
}
R__EXTERN ExceptionContext_t *gException;
extern void Throw(int code);
#endif
|