- Tractament d'excepcions
- Avantatge de la gestió d'excepcions
- Jerarquia de classes d'excepció
- Tipus d'excepció
- Exemple d'excepció
- Escenaris on es pot produir una excepció
El Gestió d'excepcions a Java és un dels poderosos mecanisme per gestionar els errors en temps d'execució de manera que es pugui mantenir el flux normal de l'aplicació.
En aquest tutorial, aprendrem sobre les excepcions de Java, els seus tipus i la diferència entre les excepcions marcades i no marcades.
java cast int a cadena
Què és l'excepció a Java?
Significat del diccionari: L'excepció és una condició anormal.
A Java, una excepció és un esdeveniment que interromp el flux normal del programa. És un objecte que es llança en temps d'execució.
Què és la gestió d'excepcions?
El maneig d'excepcions és un mecanisme per gestionar errors en temps d'execució com ClassNotFoundException, IOException, SQLException, RemoteException, etc.
Avantatge de la gestió d'excepcions
L'avantatge principal del maneig d'excepcions és per mantenir el flux normal de l'aplicació . Una excepció normalment interromp el flux normal de l'aplicació; per això hem de gestionar les excepcions. Considerem un escenari:
statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;
Suposem que hi ha 10 sentències en un programa Java i que es produeix una excepció a la sentència 5; la resta del codi no s'executarà, és a dir, les sentències 6 a 10 no s'executaran. Tanmateix, quan realitzem el maneig d'excepcions, s'executaran la resta de sentències. Per això fem servir el maneig d'excepcions Java .
Saps?
|
Jerarquia de classes d'excepció de Java
La classe java.lang.Throwable és la classe arrel de la jerarquia d'excepcions Java heretada per dues subclasses: Exception i Error. La jerarquia de les classes d'excepció de Java es mostra a continuació:
Tipus d'excepcions de Java
Hi ha principalment dos tipus d'excepcions: marcades i no marcades. Un error es considera com l'excepció no marcada. Tanmateix, segons Oracle, hi ha tres tipus d'excepcions, a saber:
- Excepció marcada
- Excepció no marcada
- Error
Diferència entre excepcions marcades i no marcades
1) Excepció marcada
Les classes que hereten directament la classe Throwable, excepte RuntimeException i Error, es coneixen com a excepcions marcades. Per exemple, IOException, SQLException, etc. Les excepcions marcades es comproven en temps de compilació.
2) Excepció sense marcar
Les classes que hereten la RuntimeException es coneixen com a excepcions no marcades. Per exemple, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, etc. Les excepcions no marcades no es comproven en temps de compilació, però sí en temps d'execució.
3) Error
L'error és irrecuperable. Alguns exemples d'errors són OutOfMemoryError, VirtualMachineError, AssertionError, etc.
Paraules clau d'excepció de Java
Java proporciona cinc paraules clau que s'utilitzen per gestionar l'excepció. La taula següent descriu cadascun.
Paraula clau | Descripció |
---|---|
provar | La paraula clau 'prova' s'utilitza per especificar un bloc on hauríem de col·locar un codi d'excepció. Vol dir que no podem utilitzar el bloc try sols. El bloc try ha d'anar seguit de catch o finally. |
agafar | El bloc 'catch' s'utilitza per gestionar l'excepció. Ha d'anar precedit del bloc try, la qual cosa significa que no podem utilitzar el bloc catch sols. Pot ser seguit per finalment bloquejar més tard. |
finalment | El bloc 'finally' s'utilitza per executar el codi necessari del programa. S'executa tant si es gestiona una excepció com si no. |
llançar | La paraula clau 'tirar' s'utilitza per llançar una excepció. |
llançaments | La paraula clau 'throws' s'utilitza per declarar excepcions. Especifica que es pot produir una excepció en el mètode. No llança cap excepció. Sempre s'utilitza amb la signatura del mètode. |
Exemple de gestió d'excepcions de Java
Vegem un exemple de gestió d'excepcions de Java en què estem utilitzant una instrucció try-catch per gestionar l'excepció.
JavaExceptionExample.java
public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } }Prova-ho ara
Sortida:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...
A l'exemple anterior, 100/0 genera una ArithmeticException que es gestiona amb un bloc try-catch.
Escenaris comuns d'excepcions de Java
Es donen alguns escenaris on es poden produir excepcions no marcades. Són els següents:
1) Un escenari on es produeix una excepció ArithmeticException
Si dividim qualsevol nombre per zero, es produeix una ArithmeticException.
int a=50/0;//ArithmeticException
2) Un escenari on es produeix l'excepció NullPointerException
Si tenim un valor nul en qualsevol variable , realitzar qualsevol operació sobre la variable llança una NullPointerException.
String s=null; System.out.println(s.length());//NullPointerException
3) Un escenari on es produeix NumberFormatException
Si el format de qualsevol variable o nombre no coincideix, pot resultar en NumberFormatException. Suposem que tenim un corda variable que té caràcters; convertir aquesta variable en dígit provocarà NumberFormatException.
String s='abc'; int i=Integer.parseInt(s);//NumberFormatException
4) Un escenari on es produeix una excepció ArrayIndexOutOfBoundsException
Quan una matriu supera la seva mida, es produeix l'excepció ArrayIndexOutOfBoundsException. pot haver-hi altres motius per produir ArrayIndexOutOfBoundsException. Considereu les afirmacions següents.
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException
Índex d'excepcions de Java
- Bloc Try-Catch de Java
- Bloc de captura múltiple de Java
- Prova anidada de Java
- Java finalment bloc
- Paraula clau de llançament de Java
- Propagació d'excepcions de Java
- Java llança la paraula clau
- Llançament de Java vs Llançaments
- Java Final vs Finally vs Finalize
- Gestió d'excepcions de Java amb substitució de mètodes
- Excepcions personalitzades de Java