Il mio caso specifico qui è che l'utente può passare una stringa nell'applicazione, l'applicazione la analizza e la assegna a oggetti strutturati. A volte l'utente può digitare qualcosa di non valido. Ad esempio, il loro contributo può descrivere una persona, ma possono dire che la loro età è "mela". Il comportamento corretto in quel caso è il rollback della transazione e per dire all'utente che si è verificato un errore e dovranno riprovare. Potrebbe essere necessario segnalare ogni errore che possiamo trovare nell'input, non solo il primo.
In questo caso, ho sostenuto che dovremmo lanciare un'eccezione. Non era d'accordo, dicendo: "Le eccezioni dovrebbero essere eccezionali: si prevede che l'utente possa inserire dati non validi, quindi questo non è un caso eccezionale" Non sapevo davvero come argomentare questo punto, perché per definizione della parola, egli sembra avere ragione.
Ma capisco che questo è il motivo per cui le eccezioni sono state inventate in primo luogo. Ha usato essere che si doveva ispezionare il risultato per vedere se si è verificato un errore. Se non riesci a controllare, potrebbero accadere cose brutte senza che te ne accorga.
Senza eccezioni, ogni livello dello stack deve controllare il risultato dei metodi che chiamano e se un programmatore dimentica di controllare uno di questi livelli, il codice potrebbe procedere accidentalmente e salvare dati non validi (ad esempio). Sembra più incline all'errore in quel modo.
Ad ogni modo, sentiti libero di correggere qualsiasi cosa abbia detto qui. La mia domanda principale è se qualcuno dice che le eccezioni dovrebbero essere eccezionali, come faccio a sapere se il mio caso è eccezionale?