aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2007-10-22 23:24:07 +0000
committerMike Buland <eichlan@xagasoft.com>2007-10-22 23:24:07 +0000
commitae5ea621f06a645dbfcf454e9b8f39a99dc8e822 (patch)
tree5cc4f378dfec6e53fa44b60ab3759500c8efe311
parentc55551427b2e8170f91b7e097f8a0f87e3a06305 (diff)
downloadlibbu++-ae5ea621f06a645dbfcf454e9b8f39a99dc8e822.tar.gz
libbu++-ae5ea621f06a645dbfcf454e9b8f39a99dc8e822.tar.bz2
libbu++-ae5ea621f06a645dbfcf454e9b8f39a99dc8e822.tar.xz
libbu++-ae5ea621f06a645dbfcf454e9b8f39a99dc8e822.zip
Made Exceptions copy well...I thought I'd already done this once...
-rw-r--r--src/exceptionbase.cpp7
-rw-r--r--src/exceptionbase.h15
2 files changed, 21 insertions, 1 deletions
diff --git a/src/exceptionbase.cpp b/src/exceptionbase.cpp
index f6ec625..73a7b0e 100644
--- a/src/exceptionbase.cpp
+++ b/src/exceptionbase.cpp
@@ -29,6 +29,13 @@ Bu::ExceptionBase::ExceptionBase( int nCode ) throw() :
29{ 29{
30} 30}
31 31
32Bu::ExceptionBase::ExceptionBase( const ExceptionBase &e ) throw () :
33 nErrorCode( e.nErrorCode ),
34 sWhat( NULL )
35{
36 setWhat( e.sWhat );
37}
38
32Bu::ExceptionBase::~ExceptionBase() throw() 39Bu::ExceptionBase::~ExceptionBase() throw()
33{ 40{
34 if( sWhat ) 41 if( sWhat )
diff --git a/src/exceptionbase.h b/src/exceptionbase.h
index f2543e4..63deb6b 100644
--- a/src/exceptionbase.h
+++ b/src/exceptionbase.h
@@ -42,6 +42,8 @@ namespace Bu
42 * @return 42 * @return
43 */ 43 */
44 ExceptionBase( int nCode=0 ) throw(); 44 ExceptionBase( int nCode=0 ) throw();
45
46 ExceptionBase( const ExceptionBase &e ) throw ();
45 47
46 /** 48 /**
47 * 49 *
@@ -87,6 +89,7 @@ class name : public Bu::ExceptionBase \
87 name( const char *sFormat, ... ) throw (); \ 89 name( const char *sFormat, ... ) throw (); \
88 name( int nCode, const char *sFormat, ... ) throw(); \ 90 name( int nCode, const char *sFormat, ... ) throw(); \
89 name( int nCode=0 ) throw (); \ 91 name( int nCode=0 ) throw (); \
92 name( const name &e ) throw (); \
90}; 93};
91 94
92#define subExceptionDeclChild( name, parent ) \ 95#define subExceptionDeclChild( name, parent ) \
@@ -96,6 +99,7 @@ class name : public parent \
96 name( const char *sFormat, ... ) throw (); \ 99 name( const char *sFormat, ... ) throw (); \
97 name( int nCode, const char *sFormat, ... ) throw(); \ 100 name( int nCode, const char *sFormat, ... ) throw(); \
98 name( int nCode=0 ) throw (); \ 101 name( int nCode=0 ) throw (); \
102 name( const name &e ) throw (); \
99}; 103};
100 104
101#define subExceptionDeclBegin( name ) \ 105#define subExceptionDeclBegin( name ) \
@@ -104,7 +108,8 @@ class name : public Bu::ExceptionBase \
104 public: \ 108 public: \
105 name( const char *sFormat, ... ) throw (); \ 109 name( const char *sFormat, ... ) throw (); \
106 name( int nCode, const char *sFormat, ... ) throw(); \ 110 name( int nCode, const char *sFormat, ... ) throw(); \
107 name( int nCode=0 ) throw (); 111 name( int nCode=0 ) throw (); \
112 name( const name &e ) throw ();
108 113
109#define subExceptionDeclEnd() \ 114#define subExceptionDeclEnd() \
110}; 115};
@@ -129,6 +134,10 @@ name::name( int nCode, const char *lpFormat, ... ) throw() : \
129name::name( int nCode ) throw() : \ 134name::name( int nCode ) throw() : \
130 ExceptionBase( nCode ) \ 135 ExceptionBase( nCode ) \
131{ \ 136{ \
137} \
138name::name( const name &e ) throw() : \
139 ExceptionBase( e ) \
140{ \
132} 141}
133 142
134#define subExceptionDefChild( name, parent ) \ 143#define subExceptionDefChild( name, parent ) \
@@ -151,6 +160,10 @@ name::name( int nCode, const char *lpFormat, ... ) throw() : \
151name::name( int nCode ) throw() : \ 160name::name( int nCode ) throw() : \
152 parent( nCode ) \ 161 parent( nCode ) \
153{ \ 162{ \
163} \
164name::name( const name &e ) throw() : \
165 ExceptionBase( e ) \
166{ \
154} 167}
155 168
156#endif 169#endif