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