首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能通知蜜巴奇

我不能通知蜜巴奇
EN

Stack Overflow用户
提问于 2016-11-03 17:48:13
回答 1查看 180关注 0票数 0

我试图在我的rails应用程序中通知来自Grape的异常,但它不起作用。

代码语言:javascript
复制
# api_error_handler.rb
module API
  module V1
    module Config
      class ApiErrorHandler < Grape::Middleware::Base
        def call!(env)
          @env = env
          begin
            @app.call(@env)
          rescue StandardError => e
            Honeybadger.notify(e)
          end
        end
      end
    end
  end
end


# In defaults.rb
module API
  module V1
    module Defaults
      extend ActiveSupport::Concern

      included do
        error_formatter :json, API::V1::Config::ErrorFormatter
        rescue_from     :all, backtrace: true
        use API::V1::Config::ApiErrorHandler

        helpers do
          def authenticate_user!
              ...
          end
        end
      end
    .....
    end
  end
end

我在每个特定的api中都包含了defaults.rb。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2016-12-19 20:18:54

异常永远不会传播到API::V1::Config::ApiErrorHandler,因为它们会被rescue_from :all, backtrace: true吞并。

您可以在rescue_from块中进行自己的异常处理。

代码语言:javascript
复制
rescue_from :all do |e|
  Honeybadger.notify(e)

  # Error still formatted with error_formatter
  # message, status, headers, backtrace
  error! e.message, 500, {}, e.backtrace
end

资料来源:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40398325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档