Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Ambiguità sulle eccezioni

    codice:
    import java.util.*;
    public class DivisioneEx
    {
    	public static int quoziente(int numeratore, int denominatore) throws ArithmeticException
    	{
    		return numeratore / denominatore;
    	}
    	public static void main(String[] args)
    	{
    		Scanner scanner = new Scanner(System.in);
    		boolean continueLoop = true;
    		
    		do
    		{
    			try
    			{
    				System.out.print("Inserisci numeratore: ");
    				int numeratore = scanner.nextInt();
    				
    				System.out.print("Inserisci denominatore: ");
    				int denominatore = scanner.nextInt();
    				
    				int risultato = quoziente(numeratore,denominatore);
    				
    				System.out.printf("\n%d / %d = %d\n",numeratore,denominatore,risultato);
    				
    				continueLoop = false;
    			}
    			catch (InputMismatchException Mismatch)
    			{
    				System.out.printf("\nEccezione: %s\n",Mismatch);
    				scanner.nextLine();
    				System.out.println("Devi inserire valori interi. Riprova\n");
    			}
    			catch (ArithmeticException Arithmetic)
    			{
    				System.out.printf("\nEccezione: %s\n",Arithmetic);
    				System.out.println("Devi inserire un denominatore diverso da 0. Riprova\n");
    			}
    		} while (continueLoop);
    	}
    }
    Ciao a tutti. Quello che non mi è chiaro in questo programma è:

    1) Perchè il programma funziona correttamente anche se al metodo quoziente non specifichiarmo che può ricevere un'eccezione InputMismatchException oltre a ArithmeticException?

    2) Perchè il programma funziona correttamente anche se al metodo quoziente non specifichiamo nessuna clausola throws?

    3) Cosa fa esattamente scanner.nextLine()?

    Spero che riusciate a rispondermi, ciao ^^

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Ambiguità sulle eccezioni

    Originariamente inviato da Dreamer89
    1) Perchè il programma funziona correttamente anche se al metodo quoziente non specifichiarmo che può ricevere un'eccezione InputMismatchException oltre a ArithmeticException?

    2) Perchè il programma funziona correttamente anche se al metodo quoziente non specifichiamo nessuna clausola throws?
    Perché sono entrambe eccezioni "unchecked".
    Per la spiegazione, vedi due miei post:
    http://forum.html.it/forum/showthrea...4#post10239264
    http://forum.html.it/forum/showthrea...9#post10007269

    Originariamente inviato da Dreamer89
    3) Cosa fa esattamente scanner.nextLine()?
    Legge 1 linea.
    http://java.sun.com/javase/6/docs/ap...tml#nextLine()
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.