safely do
# keep going if this code fails
end
Exceções são resgatadas e relatadas automaticamente ao seu serviço de relatório favorito.
Nos ambientes de desenvolvimento e teste, as exceções são levantadas para que você possa corrigi -las.
Leia mais
Adicione esta linha ao GemFile do seu aplicativo:
gem "safely_block"
“Oh não, a análise reduziu a pesquisa”
safely { track_search ( params ) }
“As recomendações pararam de atualizar por causa de um usuário ruim”
users . each do | user |
safely ( context : { user_id : user . id } ) { update_recommendations ( user ) }
end
Também alias como yolo
Passe o contexto extra a ser relatado com exceções
safely context : { user_id : 123 } do
# code
end
Especifique um valor padrão para retornar as exceções
show_banner = safely ( default : true ) { show_banner_logic }
Levantar exceções específicas
safely except : ActiveRecord :: RecordNotUnique do
# all other exceptions will be rescued
end
Passe uma matriz para várias classes de exceção.
Resgatar apenas exceções específicas
safely only : ActiveRecord :: RecordNotUnique do
# all other exceptions will be raised
end
Exceções de silêncio
safely silence : ActiveRecord :: RecordNotUnique do
# code
end
Relatório do acelerador com:
safely throttle : { limit : 10 , period : 1 . minute } do
# reports only first 10 exceptions each minute
end
Nota: O limite do acelerador é aproximado e por processo.
Relata exceções a uma variedade de serviços prontos para uso.
Nota: O contexto não é suportado com o Google Stackdriver e Scout APM
Personalize relatórios com:
Safely . report_exception_method = -> ( e ) { Rollbar . error ( e ) }
Com Rails, você pode adicionar isso em um inicializador.
Por padrão, as mensagens de exceção são prefixadas com [safely]
. Isso facilita a identificação de exceções resgatadas. Desligue isso com:
Safely . tag = false
Para relatar exceções manualmente:
Safely . report_exception ( e )
Para proteger a privacidade de seus usuários, não envie dados pessoais para serviços de exceção. Filtrar campos de formulário sensível, usar IDs (não endereços de email) para identificar usuários e mascarar endereços IP.
Com a barra de roll, você pode fazer:
Rollbar . configure do | config |
config . person_id_method = "id" # default
config . scrub_fields |= [ :birthday ]
config . anonymize_user_ip = true
end
Enquanto trabalha em exceções, esteja atento a dados pessoais e correto conforme necessário.
Veja o Changelog
Todos são incentivados a ajudar a melhorar este projeto. Aqui estão algumas maneiras de ajudar:
Para começar com o desenvolvimento e o teste:
git clone https://github.com/ankane/safely.git
cd safely
bundle install
bundle exec rake test