Monade e circostanze eccezionali [duplicato]

0

Ho una funzione che restituisce un oggetto come GetUserFromDb (int id).

Se il database non è in linea, dovrei rilevare l'errore nella funzione e inserirlo in un caso di errore / sinistra o dovrei lasciarlo fuoriuscire come un'eccezione in quanto non c'è nulla che io possa fare ed è davvero una situazione eccezionale ?

    
posta Blair Davidson 04.12.2013 - 13:45
fonte

1 risposta

1

In realtà, dipende dal tuo modello di dominio. Perché utilizzi un Either in primo luogo? In generale, il fatto che un record per un particolare ID non venga trovato perché il record non esiste, è un risultato normale ma il record non viene trovato perché il DB non esiste non è. Quindi, ha certamente senso trattare i due casi in modo diverso, cioè restituire un Either nel primo caso e generare un'eccezione nel secondo.

Naturalmente, in un'applicazione distribuita o mobile, la perdita della connessione DB potrebbe essere normale. E quando si utilizza il DB solo come stoccaggio stupido e la gestione di tutte le relazioni nella propria applicazione, non trovando un record che l'applicazione si aspetta che sia, esiste una situazione eccezionale. Tutto dipende dal contesto.

    
risposta data 04.12.2013 - 15:30
fonte

Leggi altre domande sui tag