00001 // @(#)root/base:$Id: TException.cxx 20877 2007-11-19 11:17:07Z rdm $ 00002 // Author: Fons Rademakers 21/09/95 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 ////////////////////////////////////////////////////////////////////////// 00013 // // 00014 // Exception Handling // 00015 // // 00016 // Provide some macro's to simulate the coming C++ try, catch and throw // 00017 // exception handling functionality. // 00018 // // 00019 ////////////////////////////////////////////////////////////////////////// 00020 00021 #include "TException.h" 00022 00023 ExceptionContext_t *gException; 00024 00025 00026 //______________________________________________________________________________ 00027 void Throw(int code) 00028 { 00029 // If an exception context has been set (using the TRY and RETRY macros) 00030 // jump back to where it was set. 00031 00032 if (gException) 00033 #ifdef NEED_SIGJMP 00034 siglongjmp(gException->fBuf, code); 00035 #else 00036 longjmp(gException->fBuf, code); 00037 #endif 00038 } 00039 00040