home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 May
/
Pcwk5b98.iso
/
Borland
/
Cplus45
/
BC45
/
OSL_INC.PAK
/
EXCEPT.H
< prev
next >
Wrap
C/C++ Source or Header
|
1995-08-29
|
2KB
|
68 lines
//----------------------------------------------------------------------------
// ObjectSupport
// (C) Copyright 1994 by Borland International, All Rights Reserved
//
// Base exception support for framework exceptions
//----------------------------------------------------------------------------
#if !defined(OSL_EXCEPT_H)
#define OSL_EXCEPT_H
#if !defined(OSL_DEFS_H)
# include <osl/defs.h>
#endif
//----------------------------------------------------------------------------
// Exception support comes in two levels.
//
// 1) No emulation provided, any compiler support disabled. Throwing causes
// an abort. (DISABLE_EXCEPTIONS defined)
// 2) Compiler support exceptions (DISABLE_EXCEPTIONS not defined)
//
// BI_NO_EXCEPTIONS comes from classlib/compiler.h
// DISABLE_EXCEPTIONS comes from the outside
//
#if defined(DISABLE_EXCEPTIONS) // (level 1 -- exceptions disabled)
#define TRY
#define CATCH(arg_and_code)
#define ENDCATCH
#define THROW(expr) abort()
#define RETHROW
#else // (level 2 -- compiler support required)
#if defined( __BCPLUSPLUS__ )
# include <except.h>
#else
# error Exceptions are only natively supported with Borland C++.
#endif
#define TRY try
#define CATCH(arg_and_code) catch arg_and_code
#define ENDCATCH
#define THROW(expr) throw expr
#define RETHROW throw
#endif
//----------------------------------------------------------------------------
//
// Derived exception class that supports cloning, rethrowing & instance
// counting
//
//----------------------------------------------------------------------------
class _BIDSCLASS_RTL TXBase : public xmsg {
public:
TXBase(const string& msg);
TXBase(const TXBase& src);
virtual ~TXBase();
virtual TXBase* Clone();
virtual void Throw();
static int InstanceCount;
};
#endif // OSL_EXCEPT_H