Ruby exception handling

Hi,
I am creating a web site using Ruby on Rails and Paypal NVP API. I see
in Paypal SDK something like:

def nameOfaMethod

rescue

end

and I just want to make sure if it is correct. Usually rescue clause is
in a begin … end block. Can def replace begin as begin has an end and
represents a block as well. Thanks!

Franck

Hello,

On Fri, Nov 09, 2007 at 06:29:40PM +0900, Franck Yu wrote:

and I just want to make sure if it is correct. Usually rescue clause is
in a begin … end block. Can def replace begin as begin has an end and
represents a block as well. Thanks!

The body of a method definition can be considered as a begin/end block.
So the code is OK.

Regards,

On Fri, Nov 09, 2007 at 07:35:05PM +0900, Franck Yu wrote:

Damien M. wrote:

The body of a method definition can be considered as a begin/end block.
So the code is OK.

It makes sense but where is it documented? In the Ruby programming
language spec? Where can I find the info?

I think it’s in the pickaxe but I can’t find it now. It’s in the spec:
http://www.headius.com/rubyspec/index.php/Methods, the first line.

Regards,

Hi Damien,

It makes sense but where is it documented? In the Ruby programming
language spec? Where can I find the info?
Thank you for your answer!

Franck

Damien M. wrote:

Hello,

On Fri, Nov 09, 2007 at 06:29:40PM +0900, Franck Yu wrote:

and I just want to make sure if it is correct. Usually rescue clause is
in a begin … end block. Can def replace begin as begin has an end and
represents a block as well. Thanks!

The body of a method definition can be considered as a begin/end block.
So the code is OK.

Regards,

7stud – wrote:

Franck Yu wrote:

Thank you very much for your help, Damien and 7stud!

Franck Yu wrote:

It makes sense but where is it documented? In the Ruby programming
language spec? Where can I find the info?

In pickaxe2, Chapter 22: The Ruby Language, section Method Definition,
p. 345, the listing for the general syntax of a method definition does
not indicate that a rescue block can be attached to a method. However,
on p. 347 the text says,

“The body of a method acts as if it were a begin/end block, in that it
may contain exception handling statements(rescue, else, and ensure).”

Also, in the same chapter, section Exceptions, p. 361, it says,

“A block or method may have multiple rescue clauses…When an exception
is raised, Ruby scans up the call stack until it finds an enclosing
begin/end block, method body, or statement with a rescue modifier.”