ruby - 将异常处理作为 Ruby 中的常用方法

标签 ruby exception-handling

有人能告诉我有没有办法将异常处理作为一种通用方法并在方法中使用它?让我进一步解释一下。

例如我有以下方法

def add(num1, num2)
 begin
   num1 + num2
 rescue Exception => e
   raise e
 end 
end

def divide(num1, num2)
 begin
   num1 / num2
 rescue Exception => e
   raise e
 end 
end 

如您所见,尽管我的方法只需要一行,但由于异常处理代码,该方法变得更大了。

我正在寻找的是一个更 slim 的解决方案,比如(只是一个想法)

def add(num1, num2)
  num1 + num2 unless raise_exception
end

def divide(num1, num2)
 num1 / num2 unless raise_exception
end  

def raise_exception
  raise self.Exception
end

请注意上面的代码不起作用,这只是我的想法。请问这样可以吗,还有什么好的方法吗?

最佳答案

def handle_exception(&block)
  yield
rescue Exception => e
  raise e
end

def add(num1, num2)
  handle_exception { num1 + num2 }
end

def divide(num1, num2)
  handle_exception { num1 / num2 }
end

关于ruby - 将异常处理作为 Ruby 中的常用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7433967/

相关文章:

ruby - 如何打包 ruby​​ gui 应用程序?

ruby - Ruby 有类似 Python PEX 的东西吗

java - 更高级别的错误处理

ruby-on-rails - 在 Ubuntu 上构建 Rails 应用程序时寻找 SVN 最佳实践

ruby-on-rails - 事件记录查询忽略零值

ruby - 为什么 truth && "string"返回 "string"

java - 三层架构 : Must Exception dependencies between layers be avoided?

python - python中的异常

c++ - 如何捕捉空指针异常?

scala - 如何处理 Spark 和 Scala 中的异常