Beschreiben Sie die Punkte, die bei der Implementierung der Datei-Download-Funktion in Java bei der Fehlerbehandlung schwierig waren.
[Punkt] Schließen Sie den Ausgabestream nicht automatisch Nur am Ende des Normalbetriebs schließen Antwort mit catch-Anweisung zurücksetzen und nicht schließen
OS:Windows8.1 32bit eclipse:4.5.2
In der Originalquelle wurde der Abschlussprozess in der Anweisung try-catch-resouses und schließlich in der Klausel finally beschrieben.
try {
//Rufen Sie den Eingabestream der herunterzuladenden Datei ab
//Erhalten Sie den Ausgabestream von der Antwort
//Schreiben Sie vom Eingabestream in den Ausgabestream
} catch(Exception e) {
//Ausnahmebehandlung
} finally {
//Verarbeitung schließen
}
}
Mit dieser Quelle gibt es kein Problem beim normalen Beenden. Da die Antwort jedoch auch dann geschlossen wird, wenn eine Ausnahme auftritt, werden Dateien heruntergeladen, die vom Client nicht normal sind.
Nehmen Sie daher die folgenden Änderungen vor.
try {
//Rufen Sie den Eingabestream der herunterzuladenden Datei ab
//Erhalten Sie den Ausgabestream von der Antwort
//Schreiben Sie vom Eingabestream in den Ausgabestream
//Schließen Sie die Verarbeitung nur zum Zeitpunkt des normalen Endes
} catch(Exception e) {
//Antwort-Reset-Prozess
//Ausnahmebehandlung
}
}
Damit wird es nur heruntergeladen, wenn es normal endet, und ein Fehlerbildschirm kann angezeigt werden, wenn eine Ausnahme auftritt.
Recommended Posts