Sto ancora ristrutturando il codice che mi è stato dato per l'aggiornamento sul mio attuale progetto di lavoro, e sono giunto al punto in cui sto osservando come il codice gestisce un input 'eccezionale', che non conforme alla logica aziendale.
In sostanza, il codice unisce insieme diversi fogli di calcolo Excel, li ritarda e consente all'utente di "scaricarli" nel proprio spazio di lavoro per un'analisi successiva.
Questo è ciò che ho impostato nel codice:
Se il codice finisce (ovunque) cercando, ad esempio, di importare un foglio di calcolo vuoto nel libro di lavoro finale (qualcosa che non dovrebbe mai accadere, sotto la logica aziendale) quindi scrivere su una variabile LinkedList (ErrorList) in una classe statica ( MyVariables) mi piace così, l'errore:
MyVariables.ErrorList.add("My Specific Error Text");
Quindi lancio un'eccezione in questo modo:
throw new PICNICException();
Quindi nel frame che ha chiamato la scia dei metodi, l'eccezione è finalmente catturata e posso scrivere qualcosa del genere:
catch(PICNICException Pe){
JOption.showMessageDialog(This, MyVariables.ErrorList.getLast(), "Title Relevant to what Code is Doing", JOption.ERROR_DIALOG)
Pe.printStackTrace();
}
I hanno sento che devo farlo perché, non ho modo di far apparire la finestra di dialogo dei messaggi (che è il comportamento desiderato in caso di errore) dal metodo che ha generato questa eccezione. Senza completamente che refactoring l'intero codice base e rendendo un singleton accessibile ovunque per gestire questi dialoghi di messaggi, non vedo nessun altro modo per farlo.
Non posso fare a meno di pensare che si tratti di un gigantesco trucco, e c'è un metodo migliore per farlo.
Sto gestendo le mie eccezioni nel miglior modo possibile, data la mia situazione ? Quale sarebbe la migliore pratica?