我有一个使用 savon 作为 gem 与 SOAP API 对话的类。并且有时服务器无法访问,因此实现soap方法的方法会抛出一个Timeout::Error
. 实施这样的救援不是问题:
begin
...
rescue Timeour::Error
...
end
但是我定义了大约 50 种可能会受到影响的方法,我不想重复相同的代码 50 次。那绝对不干。有没有办法解决这个问题?我已经想过这样的事情:
def safe_call method, params
begin
self.send method, params
rescue Timeour::Error
# do sth heroic to rescue the method
end
end
但这很糟糕,因为我必须更改使用该类的所有脚本中的每个调用。有没有办法进行全班救援?