Schließen Sie schließlich die Verbindung und die Anweisung

7

Was ist besser für endlich blockieren:

%Vor%

Oder:

%Vor%     
Sajad 07.08.2013, 22:30
quelle

5 Antworten

15

Besser ist die zweite Möglichkeit, denn wenn beim Initialisieren von con oder stat eine Ausnahme ausgelöst wird, werden sie nicht initialisiert und möglicherweise auf null initialisiert. In diesem Fall wird mit dem ersten Code NullPointerException ausgelöst.

Wenn Sie bereits auf Java 7 sind, sollten Sie try-with-resources , wodurch die Ressourcen automatisch geschlossen werden. Aus dem verknüpften Lernprogramm:

  

Die try-with-resources-Anweisung stellt sicher, dass jede Ressource am Ende der Anweisung geschlossen wird. Jedes Objekt, das java.lang.AutoCloseable implementiert, das alle Objekte enthält, die java.io.Closeable implementieren, kann als Ressource verwendet werden.

    
Rohit Jain 07.08.2013, 22:32
quelle
6

Keiner von ihnen ist gut genug. Verwenden Sie dies:

%Vor%

Und nenne es wie closeQuietly(stat, con);

Oder benutze java 7's try-with-resource :

%Vor%     
Xabster 07.08.2013 22:37
quelle
5

Ab Java 7 müssen Sie den finally1-Block nicht mehr verwenden, um ein Connection- oder Statement-Objekt zu schließen. Stattdessen können Sie die neuen Funktionen 'try-with-resources' nutzen.

Zuerst deklarieren Sie ein Connection- und Statement-Objekt, indem Sie die neue Syntax für einen try-catch-Block wie folgt verwenden:

%Vor%

Dadurch müssen Sie sich keine Sorgen machen, die Verknüpfung mit der Datenbank in einem finally-Block explizit zu schließen, weil der jvm das für Sie erledigt.

Habe schöne Codierung ....

    
David Archanjo 07.08.2013 22:43
quelle
0

Wenn es eine Möglichkeit gibt, ist null , das müssen Sie überprüfen. Wenn die Möglichkeit nicht besteht, gibt es keinen triftigen Grund, nach dieser Möglichkeit zu suchen.

Sie können Ihren Code auch etwas besser lesbar machen, indem Sie einige Klammern für einzelne Anweisungen weglassen:

%Vor%     
bas 07.08.2013 22:32
quelle
0

Ich würde mit der zweiten Option gehen, aber einen zweiten verschachtelten finally Block hinzufügen, nur um sicherzustellen, dass sowohl con als auch stat Objekte für die Garbage Collection markiert sind:

%Vor%     
Barranka 07.08.2013 22:35
quelle