Nesting exception

S

Sijo Kg

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
 
H

hemant kumar

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
 
S

Sijo Kg

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
 
R

Robert Klemme

2008/8/22 Sijo Kg said:
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
 
S

Sijo Kg

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,701
Latest member
XavierQ83

Latest Threads

Top