Exception: Exception
- Defined in:
- lib/core/facets/exception/detail.rb,
lib/core/facets/exception/raised.rb,
lib/core/facets/exception/suppress.rb,
lib/core/facets/exception/error_print.rb
Direct Known Subclasses
Class Method Summary collapse
-
.error_print(e) ⇒ Object
deprecated
Deprecated.
Use Exception#full_message instead (built-in since Ruby 2.5).
-
.raised? ⇒ Boolean
Does a block raise an a given
exception. -
.suppress(*exception_classes) ⇒ Object
Supress errors while executing a block, with execptions.
Instance Method Summary collapse
-
#detail ⇒ Object
Pretty string output of exception/error object useful for helpful debug messages.
-
#error_print ⇒ Object
deprecated
Deprecated.
Use Exception#full_message instead (built-in since Ruby 2.5).
Class Method Details
.error_print(e) ⇒ Object
Deprecated.
Use Exception#full_message instead (built-in since Ruby 2.5).
4 5 6 7 |
# File 'lib/core/facets/exception/error_print.rb', line 4 def self.error_print(e) warn "Exception.error_print is deprecated. Use Exception#full_message instead.", uplevel: 1 e. end |
.raised? ⇒ Boolean
Does a block raise an a given exception.
5 6 7 8 9 10 11 12 |
# File 'lib/core/facets/exception/raised.rb', line 5 def self.raised? #:yeild: begin yield false rescue self true end end |
.suppress(*exception_classes) ⇒ Object
Supress errors while executing a block, with execptions.
CREDIT: David Heinemeier Hansson, Thomas Sawyer
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/core/facets/exception/suppress.rb', line 7 def self.suppress(*exception_classes) exception_classes.each do |e| unless e < self raise ArgumentError, "exception #{e} not a subclass of #{self}" end end exception_classes = [self] | exception_classes begin yield rescue Exception => e raise unless exception_classes.any? { |cls| e.kind_of?(cls) } end end |
Instance Method Details
#detail ⇒ Object
Pretty string output of exception/error object useful for helpful debug messages.
8 9 10 11 12 13 14 |
# File 'lib/core/facets/exception/detail.rb', line 8 def detail if backtrace %{#{self.class.name}: #{}\n #{backtrace.join("\n ")}\n LOGGED FROM: #{caller[0]}} else %{#{self.class.name}: #{}\n LOGGED FROM: #{caller[0]}} end end |
#error_print ⇒ Object
Deprecated.
Use Exception#full_message instead (built-in since Ruby 2.5).
10 11 12 13 |
# File 'lib/core/facets/exception/error_print.rb', line 10 def error_print warn "Exception#error_print is deprecated. Use Exception#full_message instead.", uplevel: 1 end |