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
end
if exception.message1 != ‘No such file or directory - a’
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:
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?)
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.
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.