Refactor #13341
Add support for nested exceptions in Puppet::Error
| Status: | Closed | Start date: | 03/22/2012 | |
|---|---|---|---|---|
| Priority: | High | Due date: | ||
| Assignee: | % Done: | 0% | ||
| Category: | - | |||
| Target version: | - | |||
| Affected Puppet version: | Branch: | https://github.com/pcarlisle/puppet/tree/ticket/master/13341-nested-exceptions | ||
| Keywords: | ||||
Description
There are a decent number of places in the code where we catch an exception and then raise a Puppet::Error in response. This can be a useful pattern when we have any extra information to add to the exception, but it comes at a painfully high price if we aren’t careful not to lose the backtrace information from the original exception.
I would like to add an optional extra argument to the constructor for Puppet::Error that would allow you to pass in a nested exception, and then tweak the Logging#log_exception method to print the full series of backtraces when it is called with a Puppet::Error that takes advantage of this nesting.
Daniel, can you let me know if you have any concerns about this proposal? If not I will probably tackle it relatively soon because I think it could be extremely helpful for debugging and troubleshooting.
Related issues
History
#1
Updated by Daniel Pittman about 1 year ago
This sounds great to me. I can’t see any reason why this wouldn’t be desirable, provided we treat an empty nested exception slot sanely – since third party code can and should raise these. We should consider inserting the minimal support – the accessor – into 2.7.x as well as Telly, so that code that sets the nested exception works across both platforms. The actual printing changes might be more appropriate only in Telly.
#2
Updated by Chris Price about 1 year ago
- Status changed from Needs Decision to Accepted
- Assignee changed from Daniel Pittman to Chris Price
#3
Updated by Chris Price about 1 year ago
- Assignee changed from Chris Price to Patrick Carlisle
#4
Updated by Patrick Carlisle about 1 year ago
- Branch set to https://github.com/pcarlisle/puppet/tree/ticket/master/13341-nested-exceptions
Working on this here https://github.com/pcarlisle/puppet/tree/ticket/master/13341-nested-exceptions not quite ready yet
#5
Updated by Patrick Carlisle about 1 year ago
Should be ready to merge now
#6
Updated by Andrew Parker 8 months ago
- Target version deleted (
3.x)
This was released in 3.0.0. And was done in commit ac83f85
#7
Updated by Andrew Parker 8 months ago
- Status changed from Accepted to Closed