Il seguente codice utilizza una preferenza booleana active
: nello stato active
, esegue un'operazione che potrebbe generare un'eccezione. In questa eccezione, ricade nello stato non- active
.
let active = somePreference;
function getValue(parameter) {
try {
if ( active ) {
return valueStore.query(parameter);
} else {
throw {name: 'MyException'};
}
} catch (e) {
return getRandomValue();
}
}
Questa funzione può essere chiamata diverse volte al secondo. valueStore
restituisce un valore positivo in caso di successo e genera un'eccezione in caso di errore. (come consigliato f.ex. da Eccezione rispetto al codice di ritorno in pattern DAO ).
Un'alternativa sarebbe un blocco if..else
esterno per evitare la seconda eccezione, ma con la duplicazione del codice.
Come scrivere codice pulito con un'eccezione e una condizione che attivano entrambe la stessa azione? In JavaScript, cioè.
Related:
- L'eccezione rispetto al codice di ritorno in pattern DAO dice di preferire le eccezioni a codici di ritorno,
- Eccezioni di lancio e cattura nella stessa funzione / metodo lancia il tipo sbagliato di eccezione
- Programmazione difensiva vs Gestione delle eccezioni inizialmente si occupa di python e
- link ancora una volta dice che va bene per Python e stupido per .NET.