Sick Boy
2011-Jan-26 13:08 UTC
[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'' -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110126/95a8f22b/attachment.html>
Sick Boy
2011-Jan-26 13:37 UTC
[Ironruby-core] How to access the inner exception information from .NET exceptions?
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>