From: Srijayanth Sridhar Date: 2009-04-15T20:46:48+09:00 Subject: OptionParser and Exceptions --000e0cd2e12c9d9c590467968071 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hello, The following code: require 'optparse' optparser = OptionParser.new do |args| list=[:foo,:bar,:baz] begin args.on("--l [OPTION]",list,"Blah") { |o| } rescue puts "Rescuing in the block" end end begin optparser.parse!(ARGV) rescue puts "Rescuing in main" end ./foo.rb -l FOO ends up being rescued in main. Why is this? the parse! method just calls the block defined in new doesn't it? In which case, a begin and rescue block should work there right? Even if I remove the begin and rescue block in main, it doesn't get rescued at all, it just ends up spitting the usual ugly error etc. I am currently on Ruby 1.8.6. Thanks, Jayanth --000e0cd2e12c9d9c590467968071--