# Find some error with exception

**URL:** <https://www.ruby-forum.com/t/find-some-error-with-exception/61475>\
**Category:** Ruby\
**Created:** [May 24, 2006, 10:41am UTC](https://www.ruby-forum.com/t/find-some-error-with-exception/61475 "2006-05-24T10:41:13Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Searchsa\_Faust](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ce7236/32.png) [@Searchsa\_Faust](https://www.ruby-forum.com/u/Searchsa_Faust)\
**Post date:** [May 24, 2006, 10:41am UTC](https://www.ruby-forum.com/t/find-some-error-with-exception/61475/1 "2006-05-24T10:41:13Z")

</div>

## run following script

def foo(i)  
foo(i+1)  
end  
def main1  
begin  
foo(1)  
rescue  
puts $!.backtrace.join("\n")  
end  
end

def main2  
begin  
foo(1)  
rescue  
puts $!.backtrace.join("\n")  
end  
end

## main1 main2

# this will has to “stack too deep” error at DIFFERENT line of the script but the result will be

# mm.rb:2:in `foo' mm.rb:2:in`foo’ mm.rb:8:in `main1' mm.rb:22 mm.rb:2:in`foo’ mm.rb:2:in `foo' mm.rb:8:in`main1’ mm.rb:22

both show the 1st error position  
this error should be correct

---

<div class="post-metadata">

**Author:** ![Searchsa\_Faust](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ce7236/32.png) [@Searchsa\_Faust](https://www.ruby-forum.com/u/Searchsa_Faust)\
**Post date:** [May 24, 2006, 11:29am UTC](https://www.ruby-forum.com/t/find-some-error-with-exception/61475/2 "2006-05-24T11:29:20Z")

</div>

What are you trying to accomplish? Infinite recursion is generally not  
a really good idea unless you want to cripple your machine  
temporarily.  
-tim

---

<div class="post-metadata">

**Author:** ![Searchsa\_Faust](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ce7236/32.png) [@Searchsa\_Faust](https://www.ruby-forum.com/u/Searchsa_Faust)\
**Post date:** [May 24, 2006, 11:59am UTC](https://www.ruby-forum.com/t/find-some-error-with-exception/61475/3 "2006-05-24T11:59:56Z")

</div>

> > > > > “T” == Tim B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

T\> What are you trying to accomplish?

Read _carefully_ his message.

> > main1  
> > ^^^^^  
> > main2  
> > ^^^^^

> > mm.rb:8:in `main1' ^^^^^ mm.rb:8:in `main1’  
> > ^^^^^

In NODE\_RESCUE, ruby\_errinfo is reset to Qnil (well to e\_info) but the  
backtrace is not reset, this is why ruby not rebuild it.

Guy Decoux
