Quindi una conversazione sorse per me e alcuni amici attorno a un passaggio in questa documentazione di Elixir page.Quali situazioni richiedono Throw/Catch in elisir?
Nell'elisir è possibile lanciare un valore e successivamente catturarlo. lanciare e catturare sono riservati per situazioni in cui non è possibile recuperare un valore a meno che non si utilizzi throw and catch.
Tali situazioni sono piuttosto insolite nella pratica tranne quando l'interfaccia si interfaccia con librerie che non forniscono un'API corretta.
Quali situazioni richiederebbe utilizzando try/throw/catch
vs. try/rescue
? È questo per interfacciare con alcune librerie Erlang esistenti? L'esempio nella pagina mostra il codice Elixir che è quello che trovo un po 'confuso.
Quale sarebbe la "API corretta" che dovrei cercare? Voglio dire questo sarebbe un protocollo?
Il libro di Dave Thomas fornisce alcuni esempi: il database che scende o un server dei nomi che non risponde o non riesce ad aprire un file di configurazione il cui nome è fisso. – GavinBrelstaff
Perché quelle situazioni richiedono una cattura piuttosto che un salvataggio? Questo è quello che sto chiedendo: qual è la differenza lì? –
Avrei dovuto fare delle ricerche un po 'oltre. Sembra che questa domanda sia stata una sorta di domanda e risposta sull'Elixir Core List qualche tempo fa: https://groups.google.com/d/topic/elixir-lang-core/0eG2BqKfC_U/discussion –