Ho sentito da alcune persone che in Scala tendiamo (come altri linguaggi funzionali) a non interrompere il flusso di controllo ... Invece per convenzione restituiamo l'errore in Either
Left
.Gestione dei guasti con Either -> Where is the stacktrace?
Ma come si ottiene la stracktrace da tale eccezione? Per ora ritorno a sinistra una semplice classe di case Error
con un codice, un messaggio e una causa (Error
). Ma se ho un errore, non riesco a ottenere lo stacktrace. Se la mia applicazione diventa complessa, potrebbe essere difficile trovare il blocco di codice che ha restituito quello Error
... La causa principale è essenziale.
Quindi cosa facciamo in pratica?
dovrei tornare, al posto di un costume Error
, il tipo java Exception
o Throwable
nel mio Left
? Qual è la migliore pratica per la gestione delle eccezioni Scala senza perdere informazioni importanti come lo stacktrace e la causa?
Proprio come una nota, nella prossima Scala 2.10 [c'è anche Try] (http://blog.richdougherty.com/2012/06/error-handling-with-scalas-try.html) per la gestione degli errori –
@ om-nom-nom grazie questo sembra davvero bello! –