From: Daniel Finnie Date: 2006-12-17T12:04:32+09:00 Subject: Re: Trapping error not caught by rescue Exception -- How to? Ruby doesn't hang when I run that code. This is the output: daniel@daniel-desktop:~$ ruby /tmp/tmp.rb expr=5**2, expr.class=String eval(expr)=25 expr=date, expr.class=String ERROR: undefined local variable or method `date' for main:Object ERROR: undefined method `strip!' for nil:NilClass expr=y, expr.class=String ERROR: undefined local variable or method `y' for main:Object expr=`date`, expr.class=String eval(expr)=Sat Dec 16 22:01:37 EST 2006 Richard wrote: > Hi, > > The fourth data line in the program below hangs rather than submitting > to the rescue clause. How can I trap that kind of error? > > I'm running WinXP-Pro/SP2, Ruby 1.8.2-15, Rails 1.1.6, MySQL > 5.0.15-nt, SciTE 1.59 > > TIA, > Richard > > === code start === > begin > DATA.each do |line| > var, expr, excess = line.chomp.split(/=/, 3) > var.strip!; expr.strip! > puts "expr=" + expr + ", expr.class=" +expr.class.to_s > puts "eval(expr)=" + eval(expr).to_s > end > rescue Exception => eMsg > puts "ERROR: " + eMsg > retry > end > > __END__ > a = 5**2 =# 25 > b =date =# undefined local variable or method `date' for > main:Object > c = y =# undefined local variable or method `y' for main:Object > c =`date` =# (ruby hangs; Ctrl-C kills it) > === code end === > > >