Accueil Finances personnelles Comment utiliser une instruction try Java avec des ressources - des mannequins

Comment utiliser une instruction try Java avec des ressources - des mannequins

Vidéo: JAVA (Intermédiaire) - 83 - Try with Resources (Partie 2/3) 2025

Vidéo: JAVA (Intermédiaire) - 83 - Try with Resources (Partie 2/3) 2025
Anonim

Imaginez un programme Java qui reçoit des entrées de deux fichiers différents ou d'un Scanner et d'un disque fichier. Pour vous assurer que vous effectuez un nettoyage correct, vous devez placer des appels de méthode close dans une clause finally .

importer java. io. Fichier;

importer java. io. IOException;

importer java. util. Scanner;

public class Main {

public static void principal (String args []) {

Scanner scan1 = null;

Scanner scan2 = null;

try {

scan1 = nouveau Scanner (nouveau fichier ("File1.txt"));

scan2 = nouveau Scanner (nouveau fichier ("File2.txt"));

// Fait des choses utiles

} catch (IOException e) {

// Oups!

} enfin {

scan1. Fermer();

scan2. Fermer();

Système. en dehors. println ("Fait!");

}

}

}

En théorie, l'ordinateur exécute toujours scan1. close () et scan2. close () peu importe ce qui ne va pas pendant l'exécution de la clause try . Mais c'est la théorie. En réalité, un autre programmeur (pas vous, bien sûr) pourrait modifier le code en fermant scan1 au milieu de la clause try :

try {

scan1 = nouveau Scanner (nouveau fichier ("File1.txt"));

scan2 = nouveau Scanner (nouveau fichier ("File2.txt"));

// Fait des trucs utiles mais aussi …

scan1. Fermer();

scan1 = null;

} catch (IOException e) {

// Oups!

} enfin {

scan1. Fermer();

scan2. Fermer();

Système. en dehors. println ("Fait!");

}

Vous avez maintenant une vraie situation. Dans la clause finally , la valeur de scan1 est null . L'appel à scan1. close () échoue, donc le programme lance une NullPointerException et s'arrête avant d'avoir atteint l'appel de scan2. fermer () . Dans le pire des cas, scan2 n'est pas fermé et votre programme contient File2. txt verrouillé pour qu'aucun autre programme ne puisse utiliser le fichier.

Lorsqu'un programme utilise plusieurs ressources (beaucoup de fichiers, une base de données et un fichier, ou autre), la compilation des instructions try devient assez compliquée. Vous pouvez faire des essais dans les clauses catch et toutes sortes de combinaisons folles. Mais Java a une meilleure façon de résoudre le problème: Dans Java 7 (et les versions ultérieures de Java), vous pouvez créer une instruction try-with-resources. Ce code vous montre comment.

import java. io. Fichier;

importer java. io. IOException;

importer java. util. Scanner;

public class NewMain {

public static void principal (String args []) {

try (Scanner scan1 = nouveau Scanner (nouveau fichier ("Fichier1.txt "));

Scanner scan2 = nouveau Scanner (nouveau fichier (" File2.txt "))) {

// Fait des choses utiles

} catch (IOException e) {

// Oups ! v

}

System.println ("Terminé!");

}

}

Dans ce code, les déclarations de scan1 et scan2 sont entre parenthèses après le mot essayez Les déclarations entre parenthèses disent à Java de fermer automatiquement scan1 et scan2 après l'exécution des instructions dans > essayez la clause Vous pouvez déclarer plusieurs ressources dans les parenthèses d'une instruction try Lorsque vous le faites, Java ferme automatiquement toutes les ressources après l'exécution des instructions de la clause try . ajoutez des clauses catch et une clause finally , si vous voulez Vous pouvez accéder à toutes sortes de ressources (fichiers, bases de données, connexions aux serveurs, etc.) et avoir la tranquillité d'esprit en sachant que Java va couper les connexions automatiquement. La vie est belle.

Comment utiliser une instruction try Java avec des ressources - des mannequins

Le choix des éditeurs

Principes de base du protocole de routage IP Multicast - dummies

Principes de base du protocole de routage IP Multicast - dummies

IP Le routage multicast est le routage du trafic multicast. La nature des données IP Multicast est telle qu'elle a ses propres problèmes de routage de réseau Cisco. Il existe quatre protocoles de multidiffusion principaux pris en charge par le Cisco IOS actuel. L'illustration vous montre approximativement où les protocoles sont utilisés; Ce qui suit est ...

Comment le protocole STP (Spanning Tree Protocol) gère les modifications du réseau - dummies

Comment le protocole STP (Spanning Tree Protocol) gère les modifications du réseau - dummies

Nouveau concentrateur ou passer à un réseau mappé STP (Spanning Tree Protocol)? Pour cet exemple, un concentrateur était connecté à un port sur les deux commutateurs 11: 99 et 77: 22. Un concentrateur était utilisé car il ne disposait pas d'une intelligence réseau. L'effet net est en fait le même que ...

Types de réseau local (LAN) - nuls

Types de réseau local (LAN) - nuls

Un WAN est un type de réseau local (LAN) . Un réseau local est un réseau privé généralement constitué d'une connexion réseau fiable, rapide et bien connectée. Les alternatives sur le framework LAN incluent CAN, MAN et WAN. Ces trois options de réseau sont illustrées ci-dessous: CAN Si vous utilisez le réseau LAN ...

Le choix des éditeurs

Bebo est l'application de médias sociaux pour vous? - les nuls

Bebo est l'application de médias sociaux pour vous? - les nuls

Comment savez-vous quel est le bon média social pour vous? La culture moderne devient de plus en plus dépendante des médias sociaux tels que Bebo, Facebook, Twitter et What'sApp, ainsi que de nombreux autres. Le questionnaire suivant vous aidera à déterminer si vous avez ou non ce qu'il faut pour être social sur le nouveau ...

Comment utiliser Bebo - dummies

Comment utiliser Bebo - dummies

Bebo, la nouvelle application des médias sociaux, est aussi facile à utiliser que C'est amusant à regarder. Vous pouvez obtenir cette nouvelle application sur Google Play Store et Apple App Store. Lancez Bebo et suivez les instructions à l'écran pour terminer le processus de création de compte. Après avoir téléchargé avec succès, ...

Le choix des éditeurs

Ce que vous pouvez trouver dans une barre latérale de blog - des mannequins

Ce que vous pouvez trouver dans une barre latérale de blog - des mannequins

La plupart des blogs contiennent du matériel de barre latérale. La plupart des blogs sont disposés en deux ou trois colonnes, et le contenu de la barre latérale apparaît généralement dans les deuxième et / ou troisième colonnes. Certains blogs n'ont pas de barres latérales, et sur d'autres blogs, vous pouvez découvrir des éléments supplémentaires au-delà de ce que vous voyez ici. Archives basées sur la date: Presque tous les blogs sont ...

Lorsqu'un réseau publicitaire est approprié pour votre blog maman - les mannequins

Lorsqu'un réseau publicitaire est approprié pour votre blog maman - les mannequins

Ne sont que quelques-unes modèles conflit en cours d'exécution des publicités avec vos meilleurs intérêts. C'est quand vous bloguez pour vendre vos propres produits ou pour promouvoir vos services professionnels. Même dans ce cas, il est toujours possible de diffuser des annonces sur ces blogs, surtout si les annonces font la promotion de produits et de services complémentaires et non concurrents. Mais si vous êtes ...

Quand maman blogue pour Swag is Okay - les mannequins

Quand maman blogue pour Swag is Okay - les mannequins

Dans certaines circonstances légitimes vous pouvez vous sentir travailler gratuitement vaut votre temps et la publicité que vous offrez à une marque. Cela peut être comparé à un stage non rémunéré. Si vous êtes stagiaire et que vous avez une excellente expérience de travail, alors c'est une entreprise précieuse. Si vous êtes stagiaire et que vous ne versez que du café et que vous livrez ...