You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by mc...@apache.org on 2013/10/25 19:35:47 UTC
svn commit: r1535795 - in /qpid/trunk/qpid/cpp/bindings/qpid/ruby: ChangeLog
ruby.i
Author: mcpierce
Date: Fri Oct 25 17:35:47 2013
New Revision: 1535795
URL: http://svn.apache.org/r1535795
Log:
QPID-5250: Raise all exceptions within Ruby bindings.
Created a static definition for MessagingError in Ruby, then had all
thrown exceptions within the bindings extend that to maintain backwards
compatibility.
Modified:
qpid/trunk/qpid/cpp/bindings/qpid/ruby/ChangeLog
qpid/trunk/qpid/cpp/bindings/qpid/ruby/ruby.i
Modified: qpid/trunk/qpid/cpp/bindings/qpid/ruby/ChangeLog
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/ruby/ChangeLog?rev=1535795&r1=1535794&r2=1535795&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/ruby/ChangeLog (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/ruby/ChangeLog Fri Oct 25 17:35:47 2013
@@ -1,5 +1,6 @@
Version 0.26:
* QPID-4834: Ruby client examples incorrectly handles '--connection-options' option
+ * QPID-5250: Wrapped all C++ exceptions as Ruby exceptions.
Version 0.24:
* No language-specific changes.
Modified: qpid/trunk/qpid/cpp/bindings/qpid/ruby/ruby.i
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/ruby/ruby.i?rev=1535795&r1=1535794&r2=1535795&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/ruby/ruby.i (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/ruby/ruby.i Fri Oct 25 17:35:47 2013
@@ -25,12 +25,95 @@
/* Define the general-purpose exception handling */
%exception {
+
+ static VALUE eMessagingError = rb_define_class("MessagingError",
+ rb_eStandardError);
+
try {
$action
}
- catch (qpid::messaging::MessagingException& mex) {
- static VALUE merror = rb_define_class("MessagingError", rb_eStandardError);
- rb_raise(merror, mex.what());
+ catch(qpid::messaging::InvalidOptionString& error) {
+ static VALUE merror = rb_define_class("InvalidOptionString", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::KeyError& error) {
+ static VALUE merror = rb_define_class("KeyError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::LinkError& error) {
+ static VALUE merror = rb_define_class("LinkError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::AddressError& error) {
+ static VALUE merror = rb_define_class("AddressError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::ResolutionError& error) {
+ static VALUE merror = rb_define_class("ResolutionError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::AssertionFailed& error) {
+ static VALUE merror = rb_define_class("AssertionFailed", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::NotFound& error) {
+ static VALUE merror = rb_define_class("NotFound", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::MalformedAddress& error) {
+ static VALUE merror = rb_define_class("MalformedAddress", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::ReceiverError& error) {
+ static VALUE merror = rb_define_class("ReceiverError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::FetchError& error) {
+ static VALUE merror = rb_define_class("FetchError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::NoMessageAvailable& error) {
+ static VALUE merror = rb_define_class("NoMessageAvailable", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::SenderError& error) {
+ static VALUE merror = rb_define_class("SenderError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::SendError& error) {
+ static VALUE merror = rb_define_class("SendError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::TargetCapacityExceeded& error) {
+ static VALUE merror = rb_define_class("TargetCapacityExceeded", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::SessionError& error) {
+ static VALUE merror = rb_define_class("SessionError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::TransactionError& error) {
+ static VALUE merror = rb_define_class("TransactionError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::TransactionAborted& error) {
+ static VALUE merror = rb_define_class("TransactionAborted", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::UnauthorizedAccess& error) {
+ static VALUE merror = rb_define_class("UnauthorizedAccess", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::ConnectionError& error) {
+ static VALUE merror = rb_define_class("ConnectionError", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::TransportFailure& error) {
+ static VALUE merror = rb_define_class("TransportFailure", eMessagingError);
+ rb_raise(merror, error.what());
+ }
+ catch(qpid::messaging::MessagingException& error) {
+ rb_raise(eMessagingError, error.what());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org