[Ironruby-core] How to access the inner exception information from .NET exceptions?

Sick Boy sb at dev-heaven.net
Wed Jan 26 08:37:02 EST 2011


Answered my own question after inspecting the exception methods, and the .NET System.Exception class.
Base/Inner exception seems to be what I was mostly after:
    logger.debug [      "#{e.class}: #{e.message}",      "Base Exception: #{e.GetBaseException}",      "Inner Exception: #{e.InnerException}",      "StackTrace: #{e.StackTrace}",      "Source: #{e.Source}",      "TargetSite: #{e.TargetSite}",      "Data: #{e.Data}",      "BackTrace: #{e.backtrace.join("\n")}"      ].join("\n")
From: sb at dev-heaven.net
To: ironruby-core at rubyforge.org
Date: Wed, 26 Jan 2011 13:08:29 +0000
Subject: [Ironruby-core] How to access the inner exception information from	.NET exceptions?








Hi,

 

I am wondering how I can expose the inner exception information within IronRuby.

 

My program is throwing an exception only on one user's computer, the exception originates in a SelectItem method in WPF RibbonControlsLibrary, ComboBox.

 

I am able to catch the exception and log it, by using a begin; (code); rescue => e; logger.debug [e.class, e.message, e.backtrace.join("\n")].join(" "); end.

 

However this seems to only give me superficial information about exceptions thrown by .NET.

I would like to be able to log all the exception information, incl each inner exception, so I can evaluate the problem and hopefully solve it.

 

Is this possible or are there any other suggestions?

 

Thanks for any help!

 

This is the current exception output;

 

System::TypeInitializationException The type initializer for 'System.Windows.Automation.InvokePatternIdentifiers' threw an exception. PresentationCore:0:in `Initialize'
PresentationCore:0:in `.ctor'
PresentationCore:0:in `.ctor'
PresentationFramework:0:in `.ctor'
RibbonControlsLibrary:0:in `.ctor'
RibbonControlsLibrary:0:in `OnCreateAutomationPeer'
PresentationCore:0:in `CreateAutomationPeer'
PresentationCore:0:in `CreatePeerForElement'
RibbonControlsLibrary:0:in `OnSelected'
RibbonControlsLibrary:0:in `ChangeSelection'
RibbonControlsLibrary:0:in `CoerceSelectedItem'
WindowsBase:0:in `ProcessCoerceValue'
WindowsBase:0:in `UpdateEffectiveValue'
WindowsBase:0:in `SetValueCommon'
WindowsBase:0:in `SetValue'
RibbonControlsLibrary:0:in `set_SelectedItem'
C:/Program Files (x86)/Six Updater/Lib/ruby/gems/1.9.1/gems/six-updater-gui-0.2.0/lib/six/updater-gui/dialog_util.rb:60:in `select_item'
C:/Program Files (x86)/Six Updater/Lib/ruby/gems/1.9.1/gems/six-updater-gui-0.2.0/lib/six/updater-gui/ui_logic.rb:1124:in `load_combobox'
C:/Program Files (x86)/Six Updater/Lib/ruby/gems/1.9.1/gems/six-updater-gui-0.2.0/lib/six/updater-gui/ui_logic.rb:1051:in `load_data'
C:/Program Files (x86)/Six Updater/Lib/ruby/gems/1.9.1/gems/six-updater-gui-0.2.0/lib/six/updater-gui/ui_logic.rb:1051:in `each_pair'
C:/Program Files (x86)/Six Updater/Lib/ruby/gems/1.9.1/gems/six-updater-gui-0.2.0/lib/six/updater-gui/ui_logic.rb:1051:in `load_data'
C:/Program Files (x86)/Six Updater/Lib/ruby/gems/1.9.1/gems/six-updater-gui-0.2.0/lib/six/updater-gui/ui_logic.rb:174:in `initialize'
WindowsBase:0:in `InternalRealCall'
WindowsBase:0:in `TryCatchWhen'
WindowsBase:0:in `InvokeImpl'
WindowsBase:0:in `InvokeInSecurityContext'
mscorlib:0:in `runTryCode'
mscorlib:0:in `ExecuteCodeWithGuaranteedCleanup'
mscorlib:0:in `RunInternal'
mscorlib:0:in `Run'
mscorlib:0:in `Run'
WindowsBase:0:in `Invoke'
WindowsBase:0:in `ProcessQueue'
WindowsBase:0:in `WndProcHook'
WindowsBase:0:in `WndProc'
WindowsBase:0:in `DispatcherCallbackOperation'
WindowsBase:0:in `InternalRealCall'
WindowsBase:0:in `TryCatchWhen'
WindowsBase:0:in `InvokeImpl'
WindowsBase:0:in `SubclassWndProc'
WindowsBase:0:in `DispatchMessage'
WindowsBase:0:in `PushFrameImpl'
WindowsBase:0:in `PushFrame'
WindowsBase:0:in `Run'
PresentationFramework:0:in `RunDispatcher'
PresentationFramework:0:in `RunInternal'
PresentationFramework:0:in `Run'
 		 	   		  

_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110126/9176ea3a/attachment-0001.html>


More information about the Ironruby-core mailing list