]> OCCT Git - occt-wok.git/commitdiff
OCC12131 Improvement of Exception mechanism on Unix and Linux platforms cdl, hxx...
authorcascade <cascade@opencascade.com>
Fri, 7 Apr 2006 19:58:02 +0000 (19:58 +0000)
committercascade <cascade@opencascade.com>
Fri, 7 Apr 2006 19:58:02 +0000 (19:58 +0000)
src/CPPExt/CPPExt_Template.edl

index 3db1e0a868c28ef24a93c97f5413d3457e3ecaaf..8da084066e51e541dbad0f9b80620ff669ebee78 100755 (executable)
@@ -748,12 +748,15 @@ $    void  operator delete(void *anAddress)
 $      { 
 $        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
 $      }
+$#ifndef NO_CXX_EXCEPTION
+$ Standard_EXPORT virtual void Throw() const;
+$#endif
 $public:
+$ Standard_EXPORT %Class():%Inherits(){}
+$ Standard_EXPORT %Class(const Standard_CString AString):%Inherits(AString){}
 $ Standard_EXPORT static void Raise(const Standard_CString aMessage = "");
 $ Standard_EXPORT static void Raise(Standard_SStream& aReason);
-$#ifndef NO_CXX_EXCEPTION
-$ Standard_EXPORT virtual void Throw() const ;
-$#endif
+$ Standard_EXPORT static Handle(%Class) NewInstance(const Standard_CString aMessage); 
 $
 $ Standard_EXPORT ~%Class();
 $
@@ -784,10 +787,15 @@ ${
 $  Handle(%Class) _E (new %Class);
 $  _E->Reraise(AString);
 $}
+$
+$Handle(%Class) %Class::NewInstance(const Standard_CString aMessage)
+${
+$  return new %Class(aMessage);
+$}
 $#ifndef NO_CXX_EXCEPTION
 $void %Class::Throw() const
 ${
-$  throw %Class() ;
+$  throw *this;
 $}
 $#endif
 @end;