【发布时间】:2013-11-26 00:45:02
【问题描述】:
在我的 Rails 3.2.15 / Ruby 1.9.3p448 项目中,我想捕获由ActionMailer 产生的异常...
begin
if message.deliver
render json: { message: "Message sent successfully" }, status: 201
else
render json: { error: "Failure sending message" }, status: 401
end
rescue ArgumentError => e
if e.message == "An SMTP To address is required to send a message."
render json: { error: "Invalid recipient address" }, status: 422
else
# Continue with generic exception
end
rescue Exception => e
render json: { error: e.message }, status: 500
end
如果是ArgumentError,我想实现两种不同的行为:
- 如果消息与特定错误消息匹配,我想呈现自定义响应。
- 在其他情况下,我想继续并让通用异常阻止从错误中解救。
【问题讨论】:
-
raise "The exception with the message"在 else 块中,以便通用异常可以捕获 -
@AbibullahRahamathulah 抱歉,这不起作用。这样我无法到达第二个救援区。
标签: ruby-on-rails ruby exception-handling actionmailer rescue