Sono stato a fissare questo per ore e non riesco a pensare a una soluzione; Io di solito gestire la convalida di questo tipo con espressioni regolari, ma sto cercando di utilizzare una soluzione integrata per un cambiamento (ovviamente, non faccio questo di frequente):Java try/catch: "return non viene trovato" o "variable non è inizializzato"?
private static double promptUserDecimal(){
Scanner scan = new Scanner(System.in);
System.out.println("Enter a decimal");
try{
double input2 = Double.parseDouble(scan.nextLine());
return input2;
} catch(NumberFormatException e){
System.out.println("Sorry, you provided an invalid option, please try again.");
}
}
L'errore di questo è che il "ritorno "non viene trovato dal compilatore, quindi ricevo un errore di compilazione. Se metto il "ritorno" al di fuori del try/catch ho bisogno di dichiarare/inizializzare "input2" che vanifica lo scopo dell'operazione. Qualsiasi assistenza è apprezzata ...
Si cattura l'eccezione, si stampa un messaggio, ma il metodo continua ancora dal blocco' catch'. Il compilatore si lamenta del fatto che non si restituisce se viene colpito il blocco catch (non tutto ritorno dei percorsi) – birryree