home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / owlinc.pak / EXCEPT.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  2KB  |  85 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // (C) Copyright 1993, 1994 by Borland International, All Rights Reserved
  4. //
  5. //   OWL exception class & function definitions
  6. //----------------------------------------------------------------------------
  7. #if !defined(OWL_EXCEPT_H)
  8. #define OWL_EXCEPT_H
  9.  
  10. #if !defined(OWL_OWLDEFS_H)
  11. # include <owl/owldefs.h>
  12. #endif
  13. #if !defined(__EXCEPT_H)
  14. # include <except.h>
  15. #endif
  16. #if !defined(OSL_EXCEPT_H)
  17. # include <osl/except.h>
  18. #endif
  19. #include <owl/except.rh>
  20.  
  21. class _OWLCLASS TModule;     
  22. extern TModule* Module;
  23. const int MAX_RSRC_ERROR_STRING = 255;
  24.  
  25. int _OWLFUNC
  26. HandleGlobalException(xmsg& x, char* caption, char* canResume=0);
  27.  
  28. class _OWLCLASS_RTL TXOwl : public TXBase {
  29.   public:
  30.     TXOwl(const string& msg, unsigned resId = 0);
  31.     TXOwl(unsigned resId, TModule* module = ::Module);
  32.    ~TXOwl();
  33.  
  34.     TXOwl* Clone();
  35.     void Throw();
  36.     virtual int Unhandled(TModule* app, unsigned promptResId);
  37.     unsigned GetErrorCode() const {return ResId;}
  38.  
  39.     static string ResourceIdToString(bool* found, unsigned resId,
  40.                                      TModule* module = ::Module);
  41.     
  42.   public:
  43.     unsigned ResId;
  44. };
  45.  
  46. class _OWLCLASS_RTL TXOutOfMemory : public TXOwl {
  47.   public:
  48.     TXOutOfMemory();
  49.    ~TXOutOfMemory();
  50.     TXOutOfMemory* Clone();
  51.     void   Throw();
  52. };
  53.  
  54. //----------------------------------------------------------------------------
  55. // Owl 1.0 compatibility exception classes
  56. //
  57.  
  58. class _OWLCLASS_RTL TXCompatibility : public TXOwl {
  59.   public:
  60.     TXCompatibility(int statusCode);
  61.     TXCompatibility(const TXCompatibility& src);
  62.    ~TXCompatibility();
  63.  
  64.     TXCompatibility* Clone();
  65.     void             Throw();
  66.     int              Unhandled(TModule* app, unsigned promptResId);
  67.  
  68.     static string MapStatusCodeToString(int statusCode);
  69.  
  70.     int Status;
  71. };
  72.  
  73. class _OWLCLASS TStatus {
  74.   public:
  75.     TStatus() {StatusCode = 0;}
  76.     TStatus& operator =(int statusCode) {Set(statusCode); return *this;}
  77.     operator int() const {return StatusCode;}
  78.  
  79.   private:
  80.     void Set(int statusCode);
  81.     int  StatusCode;
  82. };
  83.  
  84. #endif  // OWL_EXCEPT_H
  85.