81 – Eccezioni in Java – Prova / Cattura

Java ha un meccanismo di cattura (cattura) Alcuni tipi di errori che possono essere rilevati solo al runtime del programma.

Gli esempi più comuni possiamo nominare le eccezioni:

  • prova a convertirsi in una stringa completamente contenere valori numerici.
  • Prova a dividere da zero.
  • Apri un file di testo inesistente o bloccato da un’altra applicazione.
  • Connettiti con un database Server che non è attivo.
  • Accesso trucchi vettoriali e matrici fuori portata.

L’acquisizione delle eccezioni ci consente di creare programmi molto più robusti e tolleranti ai guasti che si verificano in situazioni scarse, ma se applicabile, abbiamo un algoritmo alternativo per reagire a detta situazione impedendo al programma di porre fine alla sua esecuzione.

vede Filare un esempio senza cattura di eccezioni e quindi la sintassi che implementa la sua acquisizione.

Problema:

Eseguire il carico di un numero intero da tastiera e stampare il suo quadrato.

programma:

import java.util.Scanner;public class CuadradoNumero { public static void main(String ar) { Scanner teclado = new Scanner(System.in); int num; System.out.print("Ingrese un valor entero:"); num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado); }}

Se eseguiamo il programma e l’operatore immettere una stringa anziché un numero intero viene generata un’eccezione e il programma si arresta immediatamente:

Java Eccezioni senza catturare

Il programma non esegue più istruzioni dopo la riga 8 del metodo principale. Il nome di eccezione generato è riportato: Java.util.InputmismMatchatchException, cioè il nome della classe di eccezione e il pacchetto che contiene è informato: java.util

La prima cosa che possiamo dire è questo Un tipo di eccezioni non è obbligatorio per catturarli, ma come vediamo se il nostro programma del programma è spesso errato e carica le catene anziché gli interi che il programma si arresta e richiede che si riesca a eseguire.

possiamo Attuare un programma più robusto se acquistiamo l’inputmismatchatchException e informiamo l’utente che deve inserire un numero intero obbligatorio.

Ora vediamo la sintassi dello stesso programma ma catturando l’eccezione:

import java.util.InputMismatchException;import java.util.Scanner;public class CuadradoNumero { public static void main(String ar) { Scanner teclado = new Scanner(System.in); int num; try { System.out.print("Ingrese un valor entero:"); num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado); } catch (InputMismatchException ex) { System.out.println("Debe ingresar obligatoriamente un número entero."); } }}

Per intrappolare le eccezioni che dobbiamo racchiudere in un blocco tentativo Le istruzioni che generano eccezioni, nel nostro caso il metodo ‘Nextin’ della classe Scanner:

 try { System.out.print("Ingrese un valor entero:"); num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado); }

Ogni blocco Try richiede che sia seguito da un blocco catch:

 catch (InputMismatchException ex) { System.out.println("Debe ingresar obligatoriamente un número entero."); }

Dopo che il fermo della parola chiave è indicato tra parentesi il nome di qualsiasi parametro (nel nostro caso lo chiamiamo “ex”) e il nome dell’eccezione da catturare .

Il blocco di cattura di solito non viene eseguito tranne nei casi eccezionali che all’interno del blocco Try informa tale eccezione è stato sparato.

Ora se eseguiamo il programma e l’operatore inseriamo una stringa Invece di un intero il nostro programma non si ferma ma è informato dal tipo di errore che l’utente ha commesso:

Java Exceptions Capture

Quando un’eccezione viene attivato, le istruzioni che fanno dopo il metodo che hanno sparato non sono eseguite:

 num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado);

Le due istruzioni dopo aver chiamato il metodo “Nextint” che funzionano se questo Metodo solleva l’eccezione.

Possiamo ora modificare il nostro programma ancora più in modo che non finisca fino a quando non carica un valore intero:

import java.util.InputMismatchException;import java.util.Scanner;public class CuadradoNumero { public static void main(String ar) { Scanner teclado = new Scanner(System.in); int num; boolean continua; do { try { continua = false; System.out.print("Ingrese un valor entero:"); num = teclado.nextInt(); int cuadrado = num * num; System.out.print("El cuadrado de " + num + " es " + cuadrado); } catch (InputMismatchException ex) { System.out.println("Debe ingresar obligatoriamente un número entero."); teclado.next(); continua = true; } } while (continua); }}

P> SÌ E Questa variante del programma, l’ordine dell’intero carico non finirà finché non si inserisce:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *