[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Nesting exception

Sijo Kg

8/22/2008 9:48:00 AM

Hi
I have the following code It is working I have no file named a
begin
f=File.open('a')
rescue Exception => exception
if exception.message == 'No such file or directory - a'
puts ' in first rescue'
else
puts 'in else case'
end
end

So here I get 'in first rescue'

Now what i did is I deliberately changed exception.message1 .So sure I
will get an excption here And How cn I handle that(This is for learning
only).I tried like

begin
f=File.open('a')
rescue Exception => exception
if exception.message1 != 'No such file or directory - a'
puts ' in first rescue'
else
puts 'in else case'
rescue NoMethodError => e:
puts e.to_s
# raise
# puts 'error'
end
end
But it gives syntax error
rescue NoMethodError => e:
How can I solve this..Even now searching a lot in google I am not
that much confident in exception handling in Ruby and also rails

Thanks in advance
Sijo
--
Posted via http://www.ruby-....

4 Answers

hemant

8/22/2008 10:07:00 AM

0

On Fri, 2008-08-22 at 18:48 +0900, Sijo Kg wrote:
> Hi
> I have the following code It is working I have no file named a
> begin
> f=File.open('a')
> rescue Exception => exception
> if exception.message == 'No such file or directory - a'
> puts ' in first rescue'
> else
> puts 'in else case'
> end
> end
>
> So here I get 'in first rescue'
>
> Now what i did is I deliberately changed exception.message1 .So sure I
> will get an excption here And How cn I handle that(This is for learning
> only).I tried like
>
> begin
> f=File.open('a')
> rescue Exception => exception
> if exception.message1 != 'No such file or directory - a'
> puts ' in first rescue'
> else
> puts 'in else case'
> rescue NoMethodError => e:
> puts e.to_s
> # raise
> # puts 'error'
> end
> end
> But it gives syntax error
> rescue NoMethodError => e:
> How can I solve this..Even now searching a lot in google I am not
> that much confident in exception handling in Ruby and also rails

Ignoring, whatever you are trying to do, your exception handling is
wrong, it should be:

rescue NoMethodError => e





Sijo Kg

8/22/2008 10:29:00 AM

0

I tried
begin
f=File.open('a')
rescue Exception => exception
if exception.message1 == 'No such file or directory - a'
puts ' in if part of rescue'
else
puts 'in else case'
rescue NoMethodError => e:
puts e.to_s
end
end
Above I purposefully changed exception.message to
exception.message1. If it was exception.message and also
rescue NoMethodError => e:
puts e.to_s
were absent I would get 'in if part of rescue'..So as everyone know
exception.message1 doesnot exists. I would like to know how to handle
that exception. Where to place that rescue(Am I right?)

Thanks
Sijo
--
Posted via http://www.ruby-....

Robert Klemme

8/22/2008 10:50:00 AM

0

2008/8/22 Sijo Kg <sijo@maxxion.com>:
> I tried
> begin
> f=File.open('a')
> rescue Exception => exception
> if exception.message1 == 'No such file or directory - a'
> puts ' in if part of rescue'
> else
> puts 'in else case'
> rescue NoMethodError => e:
> puts e.to_s
> end
> end
> Above I purposefully changed exception.message to
> exception.message1. If it was exception.message and also
> rescue NoMethodError => e:
> puts e.to_s
> were absent I would get 'in if part of rescue'..So as everyone know
> exception.message1 doesnot exists. I would like to know how to handle
> that exception. Where to place that rescue(Am I right?)

First of all, you cannot use a symbol where you are using it as Hemant
already remarked.

Second, if you want to catch exceptions that occur during exception
handling you need to put a begin rescue end block inside the rescue
block.

robert


--
use.inject do |as, often| as.you_can - without end

Sijo Kg

8/22/2008 11:09:00 AM

0

Hi
Thanks for the reply .The following is working and prints 'Also this
error caught'
begin
f=File.open('a')
rescue Exception => exception
begin
if exception.message1 == 'No such file or directory - a'
puts ' in if part of rescue'
else
puts 'in else case'
end
rescue NoMethodError => e:
puts 'Also this error caught'
end
end

Sijo
--
Posted via http://www.ruby-....