Sha256: 2f60394ebc846a436dc5d1c7329d2aea58b7349f84ae7cad83608cc2fa629fc7
Contents?: true
Size: 1.58 KB
Versions: 4
Compression:
Stored size: 1.58 KB
Contents
# Some helper methods for throwing errors. module Puppet::Util::Errors # Throw a dev error. def devfail(msg) self.fail(Puppet::DevError, msg) end # Add line and file info if available and appropriate. def adderrorcontext(error, other = nil) error.line ||= self.line if self.respond_to?(:line) and self.line error.file ||= self.file if self.respond_to?(:file) and self.file if other and other.respond_to?(:backtrace) error.set_backtrace other.backtrace end return error end # Wrap a call in such a way that we always throw the right exception and keep # as much context as possible. def exceptwrap(options = {}) options[:type] ||= Puppet::DevError begin return yield rescue Puppet::Error => detail raise adderrorcontext(detail) rescue => detail message = options[:message] || "%s failed with error %s: %s" % [self.class, detail.class, detail.to_s] error = options[:type].new(message) # We can't use self.fail here because it always expects strings, # not exceptions. raise adderrorcontext(error, detail) end return retval end # Throw an error, defaulting to a Puppet::Error. def fail(*args) if args[0].is_a?(Class) type = args.shift else type = Puppet::Error end error = adderrorcontext(type.new(args.join(" "))) raise error end end # $Id: errors.rb 1739 2006-10-06 03:13:15Z luke $
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
puppet-0.22.4 | lib/puppet/util/errors.rb |
puppet-0.23.0 | lib/puppet/util/errors.rb |
puppet-0.23.1 | lib/puppet/util/errors.rb |
puppet-0.23.2 | lib/puppet/util/errors.rb |