English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Leggi l'input e esegui i calcoli necessari nel metodo. Mantieni il codice che causa l'eccezione nel blocco try e cattura tutte le possibili eccezioni nei blocchi catch. Visualizza il messaggio corrispondente in ogni blocco catch e chiama nuovamente il metodo.
Nel seguente esempio, abbiamo un array contenente 5 elementi, accettiamo due interi rappresentanti le posizioni dell'array dell'utente e eseguiamo l'operazione di divisione. Se l'intero rappresentante la posizione è maggiore di 5 (la lunghezza dell'eccezione ArrayIndexOutOfBoundsException), si verifica ArrayIndexOutOfBoundsException e se la posizione scelta per il denominatore è 4 (cioè 0), si verifica ArithmeticException.
Stiamo leggendo i valori e calcolando i risultati tramite metodo statico. Stiamo catturando queste due eccezioni nei due blocchi catch e chiamiamo questo metodo dopo aver visualizzato il messaggio corrispondente.
import java.util.Arrays; import java.util.Scanner; public class LoopBack { int[] arr = {10, 20, 30, 2, 0, 8}; public static void getInputs(int[] arr){ Scanner sc = new Scanner(System.in); System.out.println("Scegli il numeratore e il denominatore (non 0) da questo array (inserisci posizioni da 0 a 5)"); int a = sc.nextInt(); int b = sc.nextInt(); try { int result = (arr[a]) / (arr[b]); System.out.println("Risultato di " + arr[a] + "/" + arr[b] + ": " + result); catch(ArrayIndexOutOfBoundsException e) { System.out.println("Errore: Hai scelto una posizione che non è nell'array: RIPROVA"); getInputs(arr); }catch(ArithmeticException e) { System.out.println("Errore: Il denominatore non deve essere zero: RIPROVA"); getInputs(arr); } } public static void main(String [] args) { LoopBack obj = new LoopBack(); System.out.println("Array: " + Arrays.toString(obj.arr)); getInputs(obj.arr); } }
Risultato di output
Array: [10, 20, 30, 2, 0, 8] Scegli il numeratore e il denominatore (non 0) da questo array (inserisci posizioni da 0 a 5) 14 24 Errore: Hai scelto una posizione che non è nell'array: RIPROVA Scegli il numeratore e il denominatore (non 0) da questo array (inserisci posizioni da 0 a 5) 3 4 Errore: Il denominatore non deve essere zero: RIPROVA Scegli il numeratore e il denominatore (non 0) da questo array (inserisci posizioni da 0 a 5) 0 3 Risultato di 10/2: 5