我在我的应用中使用Rails exception_notification插件,发现它非常有用。
但是,有时我想捕获异常并优雅地处理它但仍希望收到异常通知电子邮件。它似乎只是发送未捕获的例外情况。
有没有人知道当你已经发现异常时如何强制发送电子邮件?
答案 0 :(得分:30)
我想出了如何做到这一点。这是您将在控制器中触发电子邮件的代码。
对于Rails 2.3 version of the Exception_Notification plugin:
begin
10 / 0
rescue Exception => e
ExceptionNotifier.deliver_exception_notification(e, self, request)
end
对于Rails 3 version of the Exception_Notification plugin:
begin
10 / 0
rescue Exception => e
ExceptionNotifier::Notifier.exception_notification(request.env, e).deliver
end
Rails 4 version (currently v4.0.1 of the exception_notification gem):
begin
some code...
rescue => e
ExceptionNotifier.notify_exception(e)
ExceptionNotifier.notify_exception(e, env: request.env, data: { message: "oops" })
end
答案 1 :(得分:0)
异常通知程序专门用于捕获未捕获的错误。一旦发现错误,由您自行发送电子邮件。快速而肮脏的方法是在捕获异常时触发异常邮件代码。我不记得这个方法是如何脱离我的头脑,但快速查看插件应该会产生结果。查找邮件代码的render_exception_in_public(或类似内容)。