gpt4 book ai didi

ruby 葡萄 rescue_from :all not rescuing all errors

转载 作者:太空宇宙 更新时间:2023-11-03 16:27:43 24 4
gpt4 key购买 nike

我的 Grape 应用程序有几个错误处理程序,最后包括:

rescue_from :all, backtrace: true do |e|
message = { errors: { all: e.message } }
rack_response(format_message(message, e.backtrace), 500 )
end

但这至少不能挽救 Grape 处理的错误

throw :error

内部。我该如何挽救这些错误?指出的特定错误是“不支持请求的格式‘txt’”和“未找到:some_path”。当缺少格式扩展名或只有“.”时,会发生这些错误。分别提供。

最佳答案

您不会挽救抛出的条件。它们将直接转到错误处理程序,因为 rescue 是针对 raised 错误,而不是抛出的条件。 throw 不会创建与 raise 完全相同的对象,并且不能以相同的方式进行处理。

但是,您可以使用error_formatter格式化错误消息:

module CustomErrorFormatter
def self.call message, backtrace, options, env
{ errors: { all: message.to_s } }.to_json
end
end

在主应用中:

error_formatter :json, CustomErrorFormatter

关于 ruby 葡萄 rescue_from :all not rescuing all errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21871904/

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