gpt4 book ai didi

ruby - 如何修改救援条款中的异常消息?

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:36 31 4
gpt4 key购买 nike

在下文中,['a', nil, 'c'] 的迭代将在 nil 处失败,因为您不能执行 nil + 'd' 。我想挽救该消息,对其进行修改,然后将其传递给另一个存储错误的方法。

number = 0
begin
['a', nil, 'c'].each_with_index do |entry, i|
entry + 'd'
number = i
end
rescue => e
e.message="#{e.message} (happened at entry: #{number})"
store_exception(e)
end

问题是,message= 方法不存在。我该怎么做?

最佳答案

您可以创建自定义异常并将其用作代理对象

class ProxyException < StandardError; end

number = 0
begin
['a', nil, 'c'].each_with_index do |entry, i|
entry + 'd'
number = i
end
rescue => e
e = ProxyException.new "#{e.message} (happened at entry: #{number})"
store_exception(e)
end

关于ruby - 如何修改救援条款中的异常消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735595/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com