A def
statement that defines a method may include exception-handling code in the form of
rescue
,
else
, and
ensure
clauses, just as a begin
statement can.
These exception-handling clauses go after the
end
of the method body but before the end of the def
statement.
In short methods, it can be particularly tidy to associate your rescue
clauses with the def
statement.
This also means you don’t have to
use a begin
statement and the extra level of indentation that comes with it.
def method_name(x) # The body of the method goes here. # Usually, the method body runs to completion without exceptions # and returns to its caller normally. rescue· # Exception-handling code goes here. # If an exception is raised within the body of the method, or if # one of the methods it calls raises an exception, then control # jumps to this block. else # If no exceptions occur in the body of the method # then the code in this clause is executed. ensure # The code in this clause is executed no matter what happens in the # body of the method. It is run if the method runs to completion, if· # it throws an exception, or if it executes a return statement. end
Casiano Rodriguez León 2015-01-07