当前位置: 首页 > 知识库问答 >
问题:

Python的“try”的Ruby等价物?

屠浩
2023-03-14

我正在尝试将一些Python代码转换为Ruby。在 Ruby 中是否有与 Python 中的 try 语句等效的语句?

共有3个答案

秦昂然
2023-03-14

如果您想要捕获特定类型的异常,请使用:

begin
    # Code
rescue ErrorClass
    # Handle Error
ensure
    # Optional block for code that is always executed
end

这种方法比裸露的“救援”块更可取,因为没有参数的“救援”将捕获标准错误或其任何子类,包括名称错误和类型错误。

这里有一个例子:

begin
    raise "Error"
rescue RuntimeError
    puts "Runtime error encountered and rescued."
end
陈琪
2023-03-14
 begin
     some_code
 rescue
      handle_error  
 ensure 
     this_code_is_always_executed
 end

详情:http://crodrigues.com/try-catch-finally-equivalent-in-ruby/

曹骞仕
2023-03-14

以这个为例:

begin  # "try" block
    puts 'I am before the raise.'  
    raise 'An error has occurred.' # optionally: `raise Exception, "message"`
    puts 'I am after the raise.'   # won't be executed
rescue # optionally: `rescue StandardError => ex`
    puts 'I am rescued.'
ensure # will always get executed
    puts 'Always gets executed.'
end 

Python中的等效代码将是:

try:     # try block
    print('I am before the raise.')
    raise Exception('An error has occurred.') # throw an exception
    print('I am after the raise.')            # won't be executed
except:  # optionally: `except Exception as ex:`
    print('I am rescued.')
finally: # will always get executed
    print('Always gets executed.')
 类似资料:
  • 我尝试使用以下R语句,并使用NumPy将其转换为Python: 有与which()等价的Python吗?这里,x是矩阵tmp中的行,k对应于另一个矩阵中的列数。 之前,我尝试了以下Python代码,并收到一个值错误(操作数无法与形状一起广播):

  • 问题内容: 这个问题可能背叛了一个误解,但是我很好奇Python世界的“ Tomcat”是什么。 我所有的Web编程经验都是Java(或Groovy),因此我认为是Java。当我想到制作一个基本的Web应用程序时,我想到了编写一些servlet,构建WAR文件并将其部署在Tomcat或另一个servlet容器中。 在Python中,假设我编写了一些能够响应HTTP请求的代码,我该怎么办?我将如何部

  • 问题内容: Golang 中python的chr()和ord()函数的等效项是什么? 问题答案: 支持它们作为简单转换: 输出(在Go Playground上尝试): 注意:您还可以将整数转换为基本上将整数解释为UTF-8编码值的: 将有符号或无符号整数值转换为字符串类型会产生一个包含该整数的UTF-8表示形式的字符串。有效Unicode代码点范围之外的值将转换为。

  • 问题内容: 在Python中,您可以执行以下操作: 或这个: 在Go中,最简单的选项是: 这不允许您交换格式字符串中参数的顺序,而这需要对I18N进行。Go 确实 具有该软件包,这将需要以下内容: 这似乎是一条很长的路要走的错误消息。有没有更合理的选择,可以让我给出与顺序无关的字符串参数? 问题答案: 用 使用,实现您所需的格式化程序非常容易且紧凑。 输出(在Go Playground上尝试):

  • 问题内容: 是否有与的函数等效的也就是说,给定多个相同长度的数组,将创建一个成对的数组。 例如,如果我有三个看起来像这样的数组: 输出数组应为: 问题答案: 这是一个时髦的Ecmascript 6版本: 相当于插图。到: (并且指出ES6具有可变参数语法,因此以下函数定义将类似于python,但请参见下文的免责声明…这将不是其自身的逆,因此)将不相等x;尽管正如Matt Kramer指出的那样例如

  • 问题内容: 在Python 2.x中,当您要将一个方法标记为抽象时,可以这样定义它: 然后,如果您忘记覆盖它,则会收到一个很好的提醒异常。是否存在将字段标记为抽象的等效方法?还是在您可以做的所有工作中在类文档字符串中说明? 起初我以为可以将字段设置为NotImplemented,但是当我查看它的实际用途(进行大量比较)时,它似乎很脏。 问题答案: 是的你可以。使用装饰器。例如,如果您有一个名为“e