我有一些需要在Ruby中捕获多种类型异常的代码:
begin
a = rand
if a > 0.5
raise FooException
else
raise BarException
end
rescue FooException, BarException
puts "rescued!"
end
我想要做的是将我想要捕获的异常类型列表存储在某处,并将这些类型传递给rescue子句:
EXCEPTIONS = [FooException, BarException]
然后:
rescue EXCEPTIONS
这是否可能,而且是否可以避免使用一些非常hack的eval
调用?我并不抱太大希望,因为当我尝试上述操作时,出现了TypeError: class or module required for rescue clause
。