[JAVA] À propos de la gestion des exceptions

Qu'est-ce qu'une exception

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.

Différence entre erreur et exception

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.

Vérifier l'exception

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.

Exception non cochée (cochée)

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.

try ~ catch ~ instruction enfin

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.

lancer et jeter

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

À propos de la gestion des exceptions
À propos de la gestion des exceptions
À propos de la gestion des exceptions Ruby
Gestion des exceptions
Exception de traitement des exceptions
[Java] À propos de la gestion des exceptions try-catch
Gestion des exceptions Java?
gestion des exceptions ruby
Gestion des exceptions Ruby
[Java] Gestion des exceptions
☾ Java / Gestion des exceptions
À propos de la gestion des exceptions Java
Gestion des exceptions Java
[Pour les débutants en Java] À propos de la gestion des exceptions
Pratique de gestion des exceptions (ArithmeticException)
Gestion des exceptions Spring Boot
Classes nécessitant une gestion des exceptions
Première gestion des exceptions de Java (mémoire)
[Java] Pratique de la gestion des exceptions [Exception]
[Ruby] Gestion des exceptions dans les fonctions
exception
Règles d'utilisation pour la gestion des exceptions Java
À propos =
[Java Silver] (Gestion des exceptions) À propos des instructions try-catch-finally et try-with-resource
Techniques de gestion des exceptions en Java
[Session d'étude interne] Gestion des exceptions Java (2017/04/26)
À propos de la gestion des erreurs de la fonction de commentaire
[Rails] Comment écrire la gestion des exceptions?
Gestion des exceptions avec une interface fluide
Compréhension étape par étape de la gestion des exceptions Java
[Introduction à Java] À propos de la gestion des exceptions (try-catch-finally, exception vérifiée, exception non vérifiée, throws, throw)
À propos de method.invoke
À propos de Kotlin
À propos de attr_accessor
À propos de Hinemos
À propos de l'héritage
À propos de Docker
À propos des rails 6
À propos du printemps ③
[Ruby] Traitement des exceptions, le cas échéant, restituer
À propos d'énumération
À propos du polymorphisme
À propos facultatif
À propos du hachage
À propos de JitPack
À propos de ça ()
À propos de l'encapsulation
À propos de JAVA_HOME
À propos de statique
À propos des exceptions
Exception faite par vous-même
Java (gestion des exceptions, threading, collection, fichier IO)
À propos de la portée
[Maven] À propos de Maven