Les deux sont des syntaxes pour décrire la gestion des exceptions.
Les exceptions Java incluent Error, Exception (exception cochée) et RuntimeException (exception non cochée).
・ ** Erreur ** est un problème qui ne peut pas être traité par le programme (*** Contrairement à l'erreur de compilation **, ** Exception **)
Exemple)
public test() throws IndexOutOfBounsException {
//En traitement
}
→ Même si IndexOutOfBounsException se produit dans le processus, la méthode de test est ignorée. IndexOutOfBoundsException se produit du côté qui a exécuté la méthode de test.
public test(){
throw new IndexOutOfWxception();
}
→ Lors de l'exécution de la méthode de test, une exception IndexOutOfWxception se produit dans la méthode de test.
-Try block: traitement pouvant provoquer une exception -Catch block: traitement lorsqu'une exception se produit -Finally block: Le dernier processus à être exécuté dans tous les cas
** [Exemple d'instruction try-catch-finally] **
public class Main {
public static void main(String[] args){
System.out.println(test(null));
//Enfin bloquer le traitement
//L'argument est nul
//Est affiché
System.out.println(test(10));
//La valeur de l'argument est 10
//Enfin bloquer le traitement
//L'argument était valide
//Est affiché
}
public static String test(Object obj){
try{
System.out.println("La valeur de l'argument est" + obj.toString());
}catch(NullPointerException e){
return "L'argument est nul";
}finally{
System.out.println("Enfin bloquer le traitement");
}
return "L'argument était valide";
}
}
** Syntaxe qui appelle automatiquement la ** méthode close ** de la ressource pour libérer la ressource lorsqu'une exception se produit
** - Ordre d'exécution du processus ** ① Libérez la ressource avec la méthode close (2) Traitement d'exception du bloc catch ③ Traitez enfin le bloc
** * Libérer les ressources avant le traitement des exceptions **
** [Exemple d'instruction try-with-resource] ** (De Java Silver Kuromoto)
public class Main {
public static void main(String[] args){
try(Sample s = new Sample()){
throw new Exception(); //Soulever une exception
}catch(Exception e){
System.out.println("A");
}finally{
System.out.println("B");
}
}
}
class Sample implements AutoCloseable{
public void close() throws Exception{
System.out.println("C"); //C s'affiche lorsque la méthode close est exécutée
}
}
↓ "C A B" s'affiche. Parce qu'il est exécuté dans l'ordre de la méthode close → catch block → fianlly block
référence) Document officiel / interface AutoCloseable
Un objet qui peut contenir des ressources (comme des fichiers et des poignées de socket) jusqu'à ce qu'il soit fermé. La méthode close () d'un objet AutoCloseable est automatiquement appelée à la fin du bloc try-with-resources dans lequel l'objet est déclaré dans l'en-tête de spécification de ressource. Cette version garantit une libération immédiate et évite les exceptions de pénurie de ressources et les erreurs qui pourraient se produire autrement.
Recommended Posts