Rails异常通知插件 - 强制发送电子邮件

时间:2009-10-01 16:01:17

标签: ruby-on-rails exception-handling

我在我的应用中使用Rails exception_notification插件,发现它非常有用。

但是,有时我想捕获异常并优雅地处理它但仍希望收到异常通知电子邮件。它似乎只是发送未捕获的例外情况。

有没有人知道当你已经发现异常时如何强制发送电子邮件?

2 个答案:

答案 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(或类似内容)。