摘要异常检查

min*_*eow 4 ruby refactoring exception-handling ruby-on-rails

我有一系列使用相同异常处理的方法.

如何将异常检查抽象为单独的函数?

请参阅下面的示例,非常感谢您的帮助!

def a
  code
  begin
    rescue 1...
    rescue 2...
    rescue 3...
    rescue 4...
  end
end

def b
  code
  begin
    rescue 1...
    rescue 2...
    rescue 3...
    rescue 4...
  end
end
Run Code Online (Sandbox Code Playgroud)

Jon*_*han 10

最简单的解决方案是将代码作为块传递给方法,并在开始/救援表达式中将其生成:

def run_code_and_handle_exceptions
  begin
    yield
  rescue 1...
  rescue 2...
  rescue 3...
  rescue 4...
  end
end

# Elsewhere...
def a
  run_code_and_handle_exceptions do
    code
  end
end
# etc...
Run Code Online (Sandbox Code Playgroud)

您可能想要提供比run_code_and_handle_exceptions更简洁的方法名称!