Estoy interactuando con CampaignMonitor's API usando el ruby wrapper (createsend-ruby) y me pregunto qué recomendarías en cuanto al manejo de errores/excepciones. Estaba pensando en usar begin/rescue/end de la siguiente manera, pero solo quiero saber si hay mejores técnicas para este tipo de cosas (cuando se trata de una API de terceros).¿Cómo se manejan los errores/excepciones cuando se llama a una API externa en Ruby on Rails?
begin
list_id = CreateSend::List.create client_id, title, unsubscribe_page, confirmed_opt_in, confirmation_success_page
rescue Exception => e
logger.error "[error] CampaignMonitor error: #{e}"
return false
end
Por ejemplo, ¿tratarías de detectar excepciones específicas y tratarlas individualmente?
rescue CreateSend::BadRequest => e
o es sólo una cuestión de preferencia individual y/o requisitos de aplicaciones?
¡Gracias por su tiempo!
sería tan amable de explicar por qué * * 'rescate Exception' debe evitarse siempre que sea posible (y simplemente' rescue' solos debería ser usado)? Además, ¿cuándo no sería posible evitar la especificación de 'Exception'? – user664833
'rescue' en sus propios rescates de' StandardError' y sus hijos, que es todo lo que necesita el 99% del tiempo, mientras 'rescue Exception' va más arriba en la cadena y rescata señales, salidas del sistema, sin errores de memoria y script errores A menos que esté usando 'rescue Exception' por un motivo en particular, no debería usarlo. – bensie