Sto provando a verificare se il valore passato da un utente è valido o meno. Ecco il codice che ho scritto.Utilizzo delle eccezioni per convalidare gli ingressi
enum Media_Delivery {
Streaming, Progressive
}
public class TestMain {
public static void main(String[] args) {
String medi_delivery = "streaming";
try {
Media_Delivery.valueOf("streaming");
} catch (IllegalArgumentException e) {
System.out.print(e);
}
}
}
Ora, nel codice di cui sopra, se la stringa passata non è withing enum quotata allora tiri IllegalArgumentException
che è ovvio.
Ma la mia domanda è: è questo il modo corretto di convalidare? Poiché stiamo utilizzando il meccanismo di eccezione di Java per la convalida.
Qualcuno può suggerire un'idea migliore o quello che ho codificato sopra di sé è l'opzione migliore?
----- EDIT --------
Un altro caso che ho voluto discutere:
public class TestMain {
public static void main(String[] args) {
String inputPassed = "2a";
try {
Integer.parseInt(inputPassed);
} catch (NumberFormatException nfe) {
throw new SomeUserDefinedException("Please enter only numeric values");
}
}
Quindi questa è una buona idea? O dovrebbe esserci il nostro meccanismo di analisi?
Di solito è considerato cattiva pratica di "code verso eccezioni", in altre parole con le eccezioni di determinare la logica. Dai un'occhiata a ciò che @Chris ha suggerito. –