Salve, ho notato una stranezza nel metodo nextDouble() della classe Scanner. In sostanza se immetto un valore non puramente numerico ma composto da un numero e una stringa, non viene lanciata in modo normale InputMismatchException...
Allego esempio al volo.
codice:
import java.util.*;


public class ProvaDouble {
    
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Inserisci prezzo: ");
        double prezzo = 0;
        boolean ripeti = true;
        
        do {
                
            try {
                prezzo = input.nextDouble();
                
                if (prezzo > 0.0) {
                    ripeti = false;
                }
                
            }                    
            catch (InputMismatchException e) {
                System.out.print("Inserimento non valido, reinseriscilo: ");
            }
        
        } while(ripeti);
        
        System.out.println("Il prezzo e' " + prezzo);    
    }
    
}
Se immetto 4,90 euro, mi stampa 4,9; se immetto 4,90euro, mi lancia l'eccezione ma va in loop ignorando il nextDouble() presente nel try...