root / examples / exception.rb

1 bc010844 Steven
 #!/usr/bin/env ruby
2 bc010844 Steven
3 bc010844 Steven
 $:.push File.join( File.dirname(__FILE__), "..", "lib" )
4 bc010844 Steven
5 bc010844 Steven
 require 'dramatis/actor'
6 bc010844 Steven
7 bc010844 Steven
 $serial = false
8 bc010844 Steven
9 bc010844 Steven
 if ARGV[0] == "serial"
10 bc010844 Steven
   $serial = true
11 bc010844 Steven
 end
12 bc010844 Steven
13 bc010844 Steven
 class Foo
14 bc010844 Steven
   if !$serial
15 bc010844 Steven
     include Dramatis::Actor
16 bc010844 Steven
   end
17 bc010844 Steven
   def foo that
18 bc010844 Steven
     return that.bar -3
19 bc010844 Steven
   end
20 bc010844 Steven
 end
21 bc010844 Steven
22 bc010844 Steven
 class Bar
23 bc010844 Steven
   if !$serial
24 bc010844 Steven
     include Dramatis::Actor
25 bc010844 Steven
   end
26 bc010844 Steven
   def bar value
27 bc010844 Steven
     fooobar
28 bc010844 Steven
   end
29 bc010844 Steven
   def foobar
30 bc010844 Steven
     "foobar"
31 bc010844 Steven
   end
32 bc010844 Steven
 end
33 bc010844 Steven
34 bc010844 Steven
 Foo.new
35 bc010844 Steven
 begin
36 bc010844 Steven
   Foo.new.foo Bar.new
37 bc010844 Steven
 rescue NameError => ne
38 bc010844 Steven
   puts "hey, I got a #{ne}"
39 bc010844 Steven
   puts "it happened here: " + ne.backtrace.join("\n")
40 bc010844 Steven
 end