Nesting exception

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-forum.com/.

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

rescue NoMethodError => e

···

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

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-forum.com/.

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

···

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?)

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

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-forum.com/.