Ruby异常捕获并返回false

Ruby异常捕获并返回false,ruby,exception,Ruby,Exception,ruby中出现了一个异常,如何捕获它并返回false 下面是代码 def function_one raise 'exception raised here' end 我有另一个函数,从中调用函数1 def function_two a = function_one end 我希望捕获函数_one引发的异常,使a包含“false”。 我怎么做? 请提供帮助我们需要在ruby中定义CustomError类,该类可用于引发客户错误并优雅地处理错误 请查看: 如果您不想创建自定义错误类,

ruby中出现了一个异常,如何捕获它并返回false

下面是代码

def function_one
  raise 'exception raised here'
end
我有另一个函数,从中调用函数1

def function_two
  a = function_one
end
我希望捕获函数_one引发的异常,使a包含“false”。 我怎么做?
请提供帮助

我们需要在ruby中定义CustomError类,该类可用于引发客户错误并优雅地处理错误

请查看:

如果您不想创建自定义错误类,那么您可以像(一个简单的hack)一样定义函数2:


a=function\u one rescue false
参见上的文档–第一个实际示例演示了如何拯救
ZeroDivisionError
,以返回
nil
。您可以很容易地进行调整。@KonstantinStrukov没有特定异常类的任何异常处理,例如
rescue false
是一种称为pokemon异常处理的反模式。您只是在创建一个黑洞,它吞噬了您不应该拯救的异常,这将使您的代码出现错误,无法调试@当然可以,但是你在评论答案之前检查过问题了吗
StandardError
函数_one
中引发,并被内联
rescue
捕获。如果初始帖子中的代码不同(引发更具体的错误或做一些可能引发更具体错误的事情),我的答案也会不同。@KonstantinStrukov
raise'exception raised here'
引发
运行时错误
,顺便说一句。
def function_two
  a = function_one rescue false
end