Fix for JRUBY-2882. Handle error messages related to constructors better
[jruby.git] / bench / yarv / bm_so_exception.rb
blobd8b461290cd0f6f2c81d027a1beb8b2942a5b765
1 #!/usr/bin/ruby
2 # -*- mode: ruby -*-
3 # $Id: except-ruby.code,v 1.4 2004/11/13 07:41:33 bfulgham Exp $
4 # http://www.bagley.org/~doug/shootout/
6 $HI = 0
7 $LO = 0
8 NUM = 250000 # Integer(ARGV[0] || 1)
11 class Lo_Exception < Exception
12   def initialize(num)
13     @value = num
14   end
15 end
17 class Hi_Exception < Exception
18   def initialize(num)
19     @value = num
20   end
21 end
23 def some_function(num)
24   begin
25     hi_function(num)
26   rescue
27     print "We shouldn't get here, exception is: #{$!.type}\n"
28   end
29 end
31 def hi_function(num)
32   begin
33     lo_function(num)
34   rescue Hi_Exception
35     $HI = $HI + 1
36   end
37 end
39 def lo_function(num)
40   begin
41     blowup(num)
42   rescue Lo_Exception
43     $LO = $LO + 1
44   end
45 end
47 def blowup(num)
48   if num % 2 == 0
49     raise Lo_Exception.new(num)
50   else
51     raise Hi_Exception.new(num)
52   end
53 end
56 i = 1
57 max = NUM+1
58 while i < max
59   i+=1
60   some_function(i+1)
61 end