From: Robert Klemme on
2010/7/2 Carl Jenkins <carljenkins(a)gmail.com>:
> Robert Klemme wrote:
>> On 07/02/2010 03:08 AM, Carl Jenkins wrote:
>>>>> block?
>>>>
>>>> Does this help?
>>>>
>>>> http://blog.rubybestpractices.com/posts/rklemme/001-Using_blocks_for_Robustness.html
>>>>
>>>
>>> Yes - thanks that does help.
>>
>> Good.
>>
>>> But, I have to be honest it seems a bit strange to not have to use
>>> exception handling. Especially, when coming from the Java way of doing
>>> things.
>>
>> You still need to handle the exception somewhere unless you want to let
>> it terminate the program.  It's just the file handle closing that is
>> ensured to be done under all circumstances.  And btw you can do the
>> similar things in Java with a finally block - it's just awfully more
>> verbose.  And even Java has unchecked exceptions (everything that
>> inherits Error and RuntimeException).
>>
>> I've also written another article how to write methods like File.open
>> yourself:
>> http://blog.rubybestpractices.com/posts/rklemme/002_Writing_Block_Methods.html
>
> Alright, but I guess what I am missing is HOW do we handle the
> excpetion? I see now recuse statement.

You have to write it yourself.

> Maybe I am missing something obvious but, with Java the method signature
> indicated the exception being thrown.

As I said, this is not 100% true. There are unchecked exceptions in
Java as well. Practically in Ruby the documentation should state
which exceptions can be thrown.

> That way in the calling method I
> could deal with it. In this example while I understand that the file
> handle will be closed how do you handle an exception raised?

You catch it and do whatever is appropriate. Did you read a tutorial
about Ruby and how to handle exceptions in this language? If not, see
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_exceptions.html

Cheers

robert

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/