# Trapping error not caught by rescue Exception -- How to?

**URL:** <https://www.ruby-forum.com/t/trapping-error-not-caught-by-rescue-exception-how-to/79611>\
**Category:** Ruby\
**Created:** [December 17, 2006, 3:51am UTC](https://www.ruby-forum.com/t/trapping-error-not-caught-by-rescue-exception-how-to/79611 "2006-12-17T03:51:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [December 17, 2006, 3:51am UTC](https://www.ruby-forum.com/t/trapping-error-not-caught-by-rescue-exception-how-to/79611/1 "2006-12-17T03:51:34Z")

</div>

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 ===

---

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [December 17, 2006, 4:05am UTC](https://www.ruby-forum.com/t/trapping-error-not-caught-by-rescue-exception-how-to/79611/2 "2006-12-17T04:05:34Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [December 17, 2006, 5:05am UTC](https://www.ruby-forum.com/t/trapping-error-not-caught-by-rescue-exception-how-to/79611/3 "2006-12-17T05:05:39Z")

</div>

Hi Daniel,

Thanks for your results. I suspect you were running on Uni\*. I was  
running in SciTE over WindowsXP.

When I ran the program in a Command window, I saw what the problem is:  
in Windows, the date command waits for keyboard input specifying a new  
system date. That wasn’t apparent when I was running under SciTE.

So, all’s well in my Ruby sandbox.

Regards,  
Richard
