La domanda da porsi prima è se si dovrebbe essere lanciando a tutti e poi, in tal caso, se dovrebbe essere un'eccezione controllata o non controllata.
Purtroppo, non c'è migliori prassi del settore per decidere queste cose, come mostrato da questo StackOverflow risposta:
In Java, when should I create a checked exception, and when should it be a runtime exception?
Tuttavia, ci sono alcune considerazioni fondamentali:
vostro disegno/visione di come dovrebbe funzionare questo metodo (è ragionevole/normale che il metodo venga chiamato con la lista di dimensioni 0)?
Coerenza con altri metodi della classe/package
conformità con lo standard di codifica applicabile (se presente)
La mia opinione:
ritorno Double.NAN
o 0 Se chiamare il metodo con un elenco di dimensioni 0 è ragionevole/previsto/normale, avrei dovuto Sider restituisce Double.NAN
o 0
se 0
è appropriato per il dominio del problema.
Tira un IllegalArgumentException
Se il mio progetto dice che il controllo di un elenco vuoto è fortemente la responsabilità del chiamante e la documentazione per il metodo sta per affermare chiaramente che è responsabilità del chiamante, poi ho' d utilizzare lo standard deselezionato IllegalArgumentException
.
Gettare un personalizzato verificata un'eccezione Se il metodo è parte di un pacchetto di statistiche o una libreria in cui le funzioni diverse statistiche devono affrontare un possibile insieme di dati vuoto, mi piacerebbe che questo sia una condizione di eccezione che fa parte del il dominio del problema. Vorrei creare un'eccezione personalizzata (probabilmente verificata) (ad esempio EmptyDataSetException
) per far parte della classe/pacchetto/libreria e utilizzarla in tutti i metodi applicabili. Rendendolo un'eccezione controllata aiuta a ricordare al cliente di considerare come gestire la condizione.
fonte
2010-09-27 23:23:23
beh, credo che il metodo migliore per trovare le eccezioni da gestire sia quello di interrompere il programma e lasciare che il compilatore java lo dica .. non lo è –