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 ) }
С рельсами вы можете добавить это в инициализатор.
По умолчанию сообщения исключений префикс [safely]
. Это облегчает выявление спасенных исключений. Выключите это с:
Safely . tag = false
Чтобы сообщить об исключениях вручную:
Safely . report_exception ( e )
Чтобы защитить конфиденциальность ваших пользователей, не отправляйте персональные данные в службы исключения. Фильтруя поля конфиденциальных форм, используйте идентификаторы (не адреса электронной почты) для идентификации пользователей и маски IP -адресов.
С рулоном, вы можете сделать:
Rollbar . configure do | config |
config . person_id_method = "id" # default
config . scrub_fields |= [ :birthday ]
config . anonymize_user_ip = true
end
Работая над исключениями, будьте в поисках личных данных и исправьте по мере необходимости.
Посмотреть изменение
Каждому рекомендуется помочь улучшить этот проект. Вот несколько способов помочь:
Чтобы начать работу с разработкой и тестированием:
git clone https://github.com/ankane/safely.git
cd safely
bundle install
bundle exec rake test