Hello Chris, Cint's exception handling works as follows. 1. Compile switches There are 2 compile time switch to turn on/off cint's exception handling. G__EXCEPTIONWRAPPER Cint handles compiled exception only if this macro is defined. Otherwise, thrown exception will pass through upper level. All the compiled exceptions are caught by catch(...). G__STD_EXCEPTION If this macro is defined, exception class or a class object derived from exception class is caught by Cint exception wrapper function in Api.cxx. G__EXCEPTIONWRAPPER is automatically defined if G__STD_EXCEPTION is defined. I recommend you to look into Api.cxx , G__ExceptionWrapper() and newlink.c, G__call_cppfunc(). Thank you Masaharu Goto >Date: Thu, 9 Aug 2001 19:56:23 +0300 >From: Christoph Bugel <chris@tti-telecom.com> >To: roottalk@pcroot.cern.ch, rootdev@pcroot.cern.ch >Subject: CINT: exceptions on Linux? > >Hi, > >I am having some problems throwing exceptions from my compiled objects and >catching them, outside cint, in my compiled main(). (Abort, core dumped). >Before I start digging into this I just wanted to ask if there are any known >issues with this on Linux? I think I simply did something wrong myself, but >asking never hurts. (and I don't have this problem on solaris and on windows.) > >BTW, On windows, G__STD_EXCEPTION is defined, by default, by the following code >in G__ci.h, so I had to uncomment the #define line, otherwise I could not catch >exceptions by myself, cint would catch them before I could. > >#if defined(G__WIN32) && !defined(G__STD_EXCEPTION) >#define G__STD_EXCEPTION // I commented this line out! > >Thanks, >Christoph
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:56 MET