Ruby异常捕获并返回false
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类,该类可用于引发客户错误并优雅地处理错误 请查看: 如果您不想创建自定义错误类,
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
捕获。如果初始帖子中的代码不同(引发更具体的错误或做一些可能引发更具体错误的事情),我的答案也会不同。@KonstantinStrukovraise'exception raised here'
引发运行时错误
,顺便说一句。
def function_two
a = function_one rescue false
end