summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/dotnet/src/Receiver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings/qpid/dotnet/src/Receiver.cpp')
-rw-r--r--cpp/bindings/qpid/dotnet/src/Receiver.cpp40
1 files changed, 35 insertions, 5 deletions
diff --git a/cpp/bindings/qpid/dotnet/src/Receiver.cpp b/cpp/bindings/qpid/dotnet/src/Receiver.cpp
index 87ad299078..ea612861e5 100644
--- a/cpp/bindings/qpid/dotnet/src/Receiver.cpp
+++ b/cpp/bindings/qpid/dotnet/src/Receiver.cpp
@@ -46,9 +46,24 @@ namespace Messaging {
// unmanaged clone
Receiver::Receiver(const ::qpid::messaging::Receiver & r,
Org::Apache::Qpid::Messaging::Session ^ sessRef) :
- receiverp(new ::qpid::messaging::Receiver (r)),
parentSession(sessRef)
{
+ System::Exception ^ newException = nullptr;
+
+ try
+ {
+ receiverp = new ::qpid::messaging::Receiver (r);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
+ String ^ errmsg = gcnew String(error.what());
+ newException = gcnew QpidException(errmsg);
+ }
+
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
// unmanaged clone
@@ -69,11 +84,26 @@ namespace Messaging {
// Copy constructor
- Receiver::Receiver(const Receiver ^ receiver)
- : receiverp(new ::qpid::messaging::Receiver(
- *(const_cast<Receiver ^>(receiver)->NativeReceiver))),
- parentSession(receiver->parentSession)
+ Receiver::Receiver(const Receiver ^ receiver) :
+ parentSession(receiver->parentSession)
{
+ System::Exception ^ newException = nullptr;
+
+ try
+ {
+ receiverp = new ::qpid::messaging::Receiver(
+ *(const_cast<Receiver ^>(receiver)->NativeReceiver));
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
+ String ^ errmsg = gcnew String(error.what());
+ newException = gcnew QpidException(errmsg);
+ }
+
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}