safely do
# keep going if this code fails
end
救出并自动向您最喜欢的报告服务救出并自动报告例外。
在开发和测试环境中,会增加例外,因此您可以修复它们。
阅读更多
将此行添加到您的应用程序的gemfile:
gem "safely_block"
“哦,不,分析降低了搜索”
safely { track_search ( params ) }
“建议由于一个不良用户而停止更新”
users . each do | user |
safely ( context : { user_id : user . id } ) { update_recommendations ( user ) }
end
也被称为yolo
通过额外的上下文进行报告,例外
safely context : { user_id : 123 } do
# code
end
指定一个默认值以返回异常
show_banner = safely ( default : true ) { show_banner_logic }
提出具体的例外
safely except : ActiveRecord :: RecordNotUnique do
# all other exceptions will be rescued
end
传递一个数组以获取多个异常类。
仅营救特定的例外
safely only : ActiveRecord :: RecordNotUnique do
# all other exceptions will be raised
end
沉默例外
safely silence : ActiveRecord :: RecordNotUnique do
# code
end
油门报告:
safely throttle : { limit : 10 , period : 1 . minute } do
# reports only first 10 exceptions each minute
end
注意:节气门极限是近似和每个过程。
开箱即用的各种服务报告例外。
注意: Google StackDriver和Scout APM不支持上下文
自定义报告:
Safely . report_exception_method = -> ( e ) { Rollbar . error ( e ) }
使用Rails,您可以将其添加到初始化器中。
默认情况下,异常消息带有[safely]
。这使得更容易发现被救出的例外。用:
Safely . tag = false
手动报告例外:
Safely . report_exception ( e )
为了保护用户的隐私,请勿将个人数据发送到异常服务。过滤敏感的表单字段,使用ID(而非电子邮件地址)来识别用户,然后掩盖IP地址。
对于Rollbar,您可以做:
Rollbar . configure do | config |
config . person_id_method = "id" # default
config . scrub_fields |= [ :birthday ]
config . anonymize_user_ip = true
end
在处理例外时,请注意个人数据并根据需要进行更正。
查看Changelog
鼓励每个人都帮助改善该项目。以下是您可以提供帮助的几种方法:
开始进行开发和测试:
git clone https://github.com/ankane/safely.git
cd safely
bundle install
bundle exec rake test