Datei im finally-Block schließen funktioniert nicht

7
%Vor%

Der fr.close() zeigt einen Fehler:

  

fr kann nicht aufgelöst werden

Ich hatte gelesen, dass das Schließen einer Datei im finally-Block eine gute Übung ist.
Was macht das falsch?

    
noMAD 24.01.2012, 03:15
quelle

3 Antworten

17

Die Variable fr hat nur einen Gültigkeitsbereich innerhalb des Blocks try . Es ist außerhalb des Geltungsbereiches im finally-Block. Sie müssen es vor dem try -Block deklarieren:

%Vor%

Dies ist ein ziemlich übliches Code-Muster, daher ist es gut, sich an zukünftige ähnliche Situationen zu erinnern.

Betrachten Sie das Werfen von IOException von dieser Methode - das Drucken von Track Traces ist für Anrufer nicht sehr hilfreich, und Sie würden den verschachtelten try catch around fr.close()

nicht benötigen     
Bohemian 24.01.2012, 03:17
quelle
5

Jetzt wird schließlich Block nicht benötigt,

%Vor%

schließt jetzt automatisch Ihre Leser

    
Kushan 24.01.2012 03:21
quelle
0

Sie haben ein Problem mit Ihren Bereichen. Wenn Sie diese Syntax wirklich verwenden möchten, sollten Sie es wie folgt beheben:

%Vor%

Auf diese Weise wird fr im Blockbereich von finally existieren.

    
marimaf 24.01.2012 03:27
quelle

Tags und Links