Zuhause Persönliche Finanzen Wie man eine Java try Anweisung mit Ressourcen benutzt - dummies

Wie man eine Java try Anweisung mit Ressourcen benutzt - dummies

Video: Wie installiert man Mods in Minecraft | Minecraft Mods installieren 2024

Video: Wie installiert man Mods in Minecraft | Minecraft Mods installieren 2024
Anonim

Stellen Sie sich ein Java-Programm vor, das Eingaben von zwei verschiedenen Dateien oder von einem Scanner und einer Diskette erhält Datei. Um sicherzustellen, dass Sie ordnungsgemäß bereinigen, setzen Sie Methodenaufrufe in einer finally Klausel.

importiert Java. io. Datei;

importiert Java. io. IOException;

importiert Java. Nutz. Scanner;

öffentliche Klasse Main {

public static void main (Zeichenfolge args []) {

Scanner scan1 = null;

Scanner scan2 = null;

try {

scan1 = neuer Scanner (neue Datei ("Datei1. Txt"));

scan2 = neuer Scanner (neue Datei ("Datei2. Txt"));

// Nützliches

tun} catch (IOException e) {

// Hoppla!

} schließlich {

scan1. schließen();

scan2. schließen();

System. aus. println ("Fertig!");

}

}

}

Theoretisch führt der Computer immer scan1 aus. close () und scan2. close () egal, was bei der Ausführung der try Klausel schief geht. Aber das ist Theorie. In Wirklichkeit könnte ein anderer Programmierer (natürlich nicht Sie) den Code ändern, indem er scan1 in der Mitte der try -Klausel schließt:

try {

scan1 = neuer Scanner (neue Datei ("Datei1. Txt"));

scan2 = neuer Scanner (neue Datei ("Datei2. Txt"));

// Nützliches erledigen, aber auch …

scan1. schließen();

scan1 = null;

} catch (IOException e) {

// Hoppla!

} schließlich {

scan1. schließen();

scan2. schließen();

System. aus. println ("Fertig!");

}

Jetzt hast du eine wirkliche Situation. In der finally Klausel ist der Wert von scan1 null . Der Aufruf von scan1. close () schlägt fehl, daher löst das Programm eine NullPointerException aus und hört auf zu laufen, bevor der Aufruf von scan2 erreicht wird. schließen () . Im schlimmsten Fall ist scan2 nicht geschlossen und Ihr Programm hat Datei2. txt gesperrt, sodass kein anderes Programm die Datei verwenden kann.

Wenn ein Programm mehrere Ressourcen verwendet (viele Dateien, eine Datenbank und eine Datei oder was auch immer), wird der Aufbau von try -Anweisungen ziemlich kompliziert. Sie können Anweisungen innerhalb von catch Klauseln und allen möglichen verrückten Kombinationen ausführen. Aber Java hat eine bessere Möglichkeit, das Problem zu lösen: In Java 7 (und späteren Versionen von Java) können Sie eine Anweisung try-with-resources erstellen. Dieser Code zeigt Ihnen wie.

importiert Java. io. Datei;

importiert Java. io. IOException;

importiert Java. Nutz. Scanner;

public class NewMain {

public statisch void main (Zeichenfolge args []) {

try (Scanner scan1 = neuer Scanner (neue Datei ("Datei1.txt "));

Scanner scan2 = neuer Scanner (neue Datei (" Datei2. txt "))) {

// Nützliches erledigen

} catch (IOException e) {

// Oops ! v

}

System.out println ("Fertig!");

}

}

In diesem Code sind die Deklarationen von scan1 und scan2 steht in Klammern hinter dem Wort try Die Klammerdeklarationen weisen Java an, scan1 und scan2 automatisch nach der Ausführung der Anweisungen in > try clause Sie können mehrere Ressourcen innerhalb der Klammern einer try -Anweisung deklarieren.Wenn Sie das tun, schließt Java alle Ressourcen automatisch nach der Ausführung der Anweisungen try clause. Fügen Sie catch Klauseln und eine finally Klausel hinzu, wenn Sie möchten.Sie können auf alle Arten von Ressourcen zugreifen (Dateien, Datenbanken, Verbindungen zu Servern und andere) und haben die Gewissheit, dass Java wird die Verbindungen automatisch trennen. Das Leben ist gut.

Wie man eine Java try Anweisung mit Ressourcen benutzt - dummies

Die Wahl des Herausgebers

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Schneller Foto-Bearbeitungsmodus ist eine abgespeckte Version des Modus "Full Photo Edit", der einfach grundlegende Fixingtools bereitstellt und mit einigen einzigartigen Funktionen aufwartet, z. B. eine Vorher-Nachher-Vorschau Ihres Bildes. Hier ist ein Schritt-für-Schritt-Workflow, den Sie im Schnellfoto-Bearbeitungsmodus verwenden können, um Ihre Fotos zu reparieren:

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Fotoeffekte in Photoshop Elements 11 funktionieren wie Anwenden von Filtern; Das Dialogfeld "Filtergalerie" bietet Ihnen zahlreiche Optionen zum Anwenden eines Filters. Das geführte Bedienfeld bietet Ihnen Filtereffekte und führt Sie dann durch die Schritte zum Anpassen von Helligkeitswerte, Ändern von Farbton und Sättigung und Durchführen weiterer Anpassungen zum Vervollkommnen des Ergebnisses. Sie ...

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Absatztyp in Photoshop Elements 11 ist ähnlich zu dem Text, den Sie in ein Textverarbeitungsprogramm eingeben, mit der Ausnahme, dass er in einem Textfeld oder einem Begrenzungsrahmen enthalten ist. Wenn Sie größere Textabschnitte haben, die Sie in ein Bild eingeben möchten, ist die Eingabe des Textes als Absatztyp die praktischste Option. Während ...

Die Wahl des Herausgebers

PHP-Anweisungen - Dummys

PHP-Anweisungen - Dummys

PHP ist eine Skriptsprache, die speziell für die Verwendung im Internet entwickelt wurde. Es enthält Funktionen, die Sie bei der Programmierung der Aufgaben unterstützen, die für die Entwicklung dynamischer Webanwendungen erforderlich sind. Diese Tabelle gibt einen kurzen Überblick über einige der Anweisungen, die Sie häufig verwenden werden: Anweisung Beschreibung array ("key" => "value", ...); Casts a ...

PHP-Schablonen-Systeme - Schablonen-Systeme

PHP-Schablonen-Systeme - Schablonen-Systeme

Können die Menge an Arbeit reduzieren, die Sie für die Erstellung einer Website in PHP benötigen. Wenn Sie eine Website erstellen, verwenden Sie häufig das gleiche Layout für die gesamte Website. Sie haben eine obere Portion, vielleicht mit einem Menü; ein Hauptinhaltsbereich; und ein unterer Teil, vielleicht mit Links oder ...

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Die ALTER Query wird verwendet, um die Struktur von eine MySQL-Datenbank. In dieser Liste wird die Syntax für die Änderungen angezeigt, die Sie wahrscheinlich vornehmen möchten: ADD-Spaltenbezeichnung ALTER-Spaltenname SET-DEFAULT-Wert ALTER-Spaltenname DROP DEFAULT CHANGE-Spaltenname newcolname-Definition DROP-Spaltenname MODIFY-Spaltenname RENAME newtablename

Die Wahl des Herausgebers

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Mit NoSQL haben Sie Hochgeschwindigkeits-Caching. Stellen Sie sich vor, Sie sind Bankangestellte und arbeiten mit drei anderen Kollegen zusammen. Jeder hat eine Reihe von Leuten, die bedient werden sollen. Einer der Kunden bleibt jedoch in der Schlange, um zu fragen, ob sein Scheck bereits eingelöst und der Betrag seinem Konto gutgeschrieben wurde. Wenn Sie ...

Wie man Einsichten aus Big Data kommuniziert - Dummies

Wie man Einsichten aus Big Data kommuniziert - Dummies

Big Data kann helfen, Einblicke zu gewinnen. Unternehmen gewinnen Wettbewerbsvorteile, wenn die richtigen Informationen zur richtigen Zeit an die richtigen Leute geliefert werden. Dies bedeutet, Erkenntnisse und Informationen aus Daten zu extrahieren und sie Entscheidungsträgern auf eine Weise zu vermitteln, die sie leicht verstehen. Schließlich sind Menschen weniger wahrscheinlich zu handeln, wenn sie ...

Zookeeper und HBase Reliability - dummies

Zookeeper und HBase Reliability - dummies

Zookeeper ist ein verteiltes Cluster von Servern, das gemeinsam zuverlässige Koordinations- und Synchronisationsdienste für Cluster-Anwendungen bereitstellt. .. Zugegeben, der Name "Zookeeper" mag auf den ersten Blick eine seltsame Wahl sein, aber wenn Sie verstehen, was es für einen HBase-Cluster tut, können Sie die Logik dahinter sehen. Beim Erstellen und Debuggen von verteilten Anwendungen ...