Interesuję się z CampaignMonitor's API przy użyciu ruby wrapper (createsend-ruby) i po prostu zastanawiam się, co poleciłbyś w zakresie obsługi błędów/wyjątków. Myślałem o używaniu początku/ratowania/kończenia w następujący sposób, ale chcę tylko wiedzieć, czy istnieją lepsze techniki tego typu (gdy mamy do czynienia z interfejsem API innej firmy).Jak obsługiwać błędy/wyjątki podczas wywoływania zewnętrznego interfejsu API w 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
Na przykład, czy próbowałbyś wychwycić określone wyjątki i radzić sobie z nimi indywidualnie?
rescue CreateSend::BadRequest => e
Czy to tylko kwestia indywidualnych preferencji i/lub wymagań aplikacji?
Dziękuję za poświęcony czas!
mógłbyś łaskawie wyjaśnić dlaczego * * 'rescue Exception' należy unikać, jeśli to możliwe (i po prostu' rescue' sam należy użyć)? Ponadto, kiedy nie można uniknąć określenia "wyjątku"? – user664833
'rescue' na własne uratowanie z' StandardError' i jego dzieci, to wszystko, czego potrzebujesz 99% czasu, podczas gdy 'rescue Exception' idzie wyżej w górę łańcucha i ratuje od sygnałów, wyjść systemu, brak błędów pamięci i skryptu błędy. O ile nie używasz 'wyjątku ratunkowego' z konkretnego powodu, nie powinieneś go używać. – bensie