Nozioni di base su try-catch
Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 40 di 59.
I blocchi try-catch in Java vengono utilizzati per gestire le eccezioni (errori) che potrebbero verificarsi durante l’esecuzione del programma. Il codice che potrebbe generare un’eccezione va nel blocco try, mentre il codice per gestire l’errore va nel blocco catch.
Ecco la struttura di base di un blocco try-catch:
try {
// Codice che potrebbe generare un'eccezione
} catch (ExceptionType e) {
// Codice per gestire l'eccezione
}Vediamolo in azione con Integer.parseInt(), che converte una String in un intero:
String text = "abc";
try {
int number = Integer.parseInt(text);
System.out.println(number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
}Dopo aver eseguito il codice qui sopra, l'output è:
Error: Not a valid number
A un singolo try possono seguire diversi blocchi catch, uno per ogni tipo di eccezione. Java esegue il primo blocco il cui tipo corrisponde all'eccezione generata:
try {
int number = Integer.parseInt(text);
System.out.println(10 / number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
} catch (ArithmeticException e) {
System.out.println("Error: Division by zero");
}Sfida
FacileCrea un metodo chiamato divideNumbers che accetta tre argomenti:
- Una stringa (
num1) che rappresenta il primo numero - Una stringa (
num2) che rappresenta il secondo numero - Un intero (
index) che rappresenta un indice di array
Il metodo dovrebbe:
- Creare un array di dimensione 2
- Memorizzare all'indice specificato il valore intero analizzato di num1 diviso per il valore intero analizzato di num2
- Restituire il valore all'indice specificato
- Gestire tutte le eccezioni possibili, restituendo invece il messaggio di errore corrispondente
I messaggi restituiti dovrebbero essere:
- Per
NumberFormatException: "Error: Invalid number format" - Per
ArithmeticException: "Error: Division by zero" - Per
ArrayIndexOutOfBoundsException: "Error: Invalid array index" - In caso di operazione riuscita: restituire il risultato come stringa
Provalo tu
import java.util.Scanner;
public class Main {
public static String divideNumbers(String num1, String num2, int index) {
// Scrivi il tuo codice qui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String num1 = scanner.nextLine();
String num2 = scanner.nextLine();
int index = Integer.parseInt(scanner.nextLine());
System.out.println(divideNumbers(num1, num2, index));
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online