Descendants of class
Exception are used to communicate between
rescue statements in
begin ... end blocks.
Exception objects carry information about the exception – its type (the exception's class name), an optional descriptive string, and optional traceback information.
Exception subclasses may add additional information like
Programs may make subclasses of
Exception, typically of
RuntimeError, to provide custom classes and add additional information. See the subclass list below for defaults for
When an exception has been raised but not yet handled (in
END blocks) the global variable
$! will contain the current exception and
$@ contains the current exception's backtrace.
It is recommended that a library should have one subclass of
RuntimeError and have specific exception types inherit from it. This allows the user to rescue a generic exception type to catch all exceptions the library may raise even if future versions of the library add new exception subclasses.
class MyLibrary class Error < RuntimeError end class WidgetError < Error end class FrobError < Error end end
To handle both WidgetError and FrobError the library user can rescue MyLibrary::Error.
The built-in subclasses of
StandardError – default for
fatal – impossible to rescue
Equality—If obj is not an
false. Otherwise, returns
true if exc and obj share same class, messages, and backtrace.
Returns any backtrace associated with the exception. The backtrace is an array of strings, each containing either “filename:lineNo: in `method''' or “filename:lineNo.''
def a raise "boom" end def b a() end begin b() rescue => detail print detail.backtrace.join("\n") end
prog.rb:2:in `a' prog.rb:6:in `b' prog.rb:10
Returns the previous exception ($!) at the time this exception was raised. This is useful for wrapping exceptions and retaining the original exception information.
With no argument, or if the argument is the same as the receiver, return the receiver. Otherwise, create a new exception object of the same class as the receiver, but with a message equal to
Returns formatted string of exception. The returned string is formatted using the same format that Ruby uses when printing an uncaught exceptions to stderr.
If highlight is
true the default error handler will send the messages to a tty.
order must be either of
:bottom, and places the error message and the innermost backtrace come at the top or the bottom.
The default values of these options depend on
$stderr and its
tty? at the timing of a call.
Returns the result of invoking
exception.to_s. Normally this returns the exception's message or name.
Construct a new
Exception object, optionally passing in a message.
Returns exception's message (or the name of the exception if no message is set).