Les exceptions sont des objets qui vous avertissent qu'un événement inattendu s'est produit dans votre programme et que le traitement ne peut pas continuer. Les exceptions facilitent la lecture de votre code car vous pouvez séparer dans une certaine mesure le traitement normal de votre code du traitement ci-dessus.
Les problèmes lors de l'exécution de Java peuvent être divisés en deux types: erreur et exception.
Erreur Situations qui ne peuvent pas être traitées par le programme, telles que des problèmes dans l'environnement d'exécution. Le programme ne peut pas continuer et sera tué.
exception Une situation qui peut être traitée par le programme. Contrairement aux erreurs, vous pouvez continuer le programme sans terminer son fonctionnement.
Lors de l'écriture d'une méthode, c'est une exception vérifiée qui se met en colère si vous n'écrivez pas la gestion des exceptions, et une exception vérifiée est fondamentalement une exception qui ne peut pas être évitée même si vous écrivez le bon programme. Par exemple, le fichier auquel vous voulez faire référence est corrompu ou une panne de base de données se produit. Les exceptions vérifiées sont le traitement des exceptions vérifié par le compilateur et sont ciblées sur Exection et ses sous-classes.
Il s'agit d'une exception dans laquelle le compilateur ne vérifie pas si la gestion des exceptions a été décrite. Les exceptions non vérifiées sont écrites arbitrairement par le programmeur et sont destinées à la classe RuntimeExcepiton et à ses sous-classes. Les exceptions non contrôlées sont essentiellement des erreurs évitables et ne sont pas obligatoires.
main.java
public static void main (String[] args) {
int[] ary = {1, 2, 3};
System.out.println(ary[3]);
}
Le code ci-dessus demande que le quatrième soit affiché même s'il n'y a que trois éléments dans le tableau. Une fois exécuté, ce sera comme suit.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
J'ai reçu un message indiquant que j'essayais de regarder en dehors de la plage du tableau.
Ajoutons à cela la gestion des exceptions et exécutons-la.
main.java
class Main{
public static void main(String args[]){
try{
int[] ary = {1, 2, 3};
System.out.println(ary[3]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception");
}
}
}
Résultat d'exécution
Exception
La gestion des exceptions s'est exécutée.
sample.java
class Sample {
public static void main (String[] args) {
int ary[] = {1, 2, 3};
System.out.println("début");
try{
for (int i = 0; i < 4; i++){
System.out.println(n[i]);
}
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("Au-delà de la portée du tableau");
}
finally{
System.out.println("Tableau de sortie");
}
System.out.println("Terminer le traitement");
}
}
Décrivez le processus qui peut provoquer une exception dans la partie try et écrivez le processus lorsqu'une exception se produit dans la partie catch. Vous pouvez également séparer les blocs catch en fonction du type d'exception. Décrit le dernier processus à exécuter dans la partie finale.
throw En plus de la gestion des exceptions par try ~ catch, il existe également une gestion des exceptions appelée throw qui vous permet de lever une exception vous-même.
sample.java
void test (int num) {
if(num == 0) {
throw new IllegalArgumentException("Argument invalide");
}
}
Dans la méthode de test, même si un type numérique appelé num est spécifié comme argument, il est écrit pour traiter lorsque num est égal à 0 en minutes if.
Une fois exécuté, ce sera comme suit.
throw new IllegalArgumentException("Argument invalide");
throws Le nom est similaire à throw, mais le contenu de traitement est différent. throws peut être appelé à l'appelant lorsque vous souhaitez que l'exception soit gérée par l'appelant plutôt que dans la méthode.
sample.java
import java.io.FileNotFoundException;
import java.io.FileReader;
class Sample {
public static void main (String[] args) {
System.out.println("Lancer d'exception");
try {
methodA();
} catch(FileNotFoundException e) {
System.err.println(e.getMessage());
}
}
void methodA() throws FileNotFoundException {
FileReader aFile = new FileReader("aFile.txt");
}
}
Résultat d'exécution
aFile.txt (No such file or directory)
Le traitement est terminé
Recommended Posts