Non sono d'accordo. Le eccezioni sono per appunto casi eccezionali.
Se io verifico che un file non sia gia' esistente, o che un IP non sia gia' assegnato non credo che genererei un'eccezione.
Pero' in ogni caso forse ho capito come fare.
Esempio:
codice:
//Model
//...
public void setIPAddress (String ip, boolean forceDuplicate) {
if (alreadyExists(ip) && !forceDuplicate) {
notifyError ("Duplicate IP"); //e questa chiamata arriva alla GUI
}
else {
assignIP (ip);
setChanged();
notifyObservers(this); //e questa notifica arriva alla GUI che eventualmente puo' mostrare un messaggio di successo ed essere ridisegnata per riflettere le modifiche al modello.
}
}
Se poi un errore viene notificato e l'utente decide di assegnare l'IP anche se duplicato allora lo stesso metodo verra' richiamato dal controller con forceDuplicate settato a true.
ha senso?