Frage

Die Anforderung:   Auf einem Fehler (geworfen Ausnahme), sollte die Datei verarbeitet wird für Dateien mit Fehlern (app.config Einstellung).

in den Ordner verschoben werden

Das Problem:   Der einzige Weg, ich kann der Umgang mit diesem ist eine verschachtelte Try / Catch haben innerhalb des Haupt Try / Catch, um zu versuchen, die Datei zu bewegen, auf diese Weise, wenn der Zug ausfällt, wird eine andere Ausnahme ausgelöst. Ich weiß, dass ich mein Bestes tun, um sicherzustellen, dass das Verzeichnis vorhanden ist, sind Rechte gegeben, aber da es sich um ein Netzlaufwerk ist ... Ich weiß nur ein Fehler gebunden ist, an einem gewissen Punkt passieren.

Beispiel

Try
   (Do Some Logic, but an error happens)
Catch ex As Exception
   Try
       (Attempt to move file)
   Catch exinner as Exception
       Throw New Exception("Cannot move file to Error Directory", innerex)
   End Try
   (Raise Error Event for logging by form/batch app)
End Try

Eigentlich kam, dass aus noch schrecklicher als das, was ich dachte, es aussehen würde.

Jetzt weiß ich, dass ich etwas falsch mache. Wie soll ich in dem Fang auftritt, einen möglichen Fehler versuchen, wirklich zu handhaben, so dass ich immer noch Dateien bewegen und versuche, mein Ereignis zu nennen?

War es hilfreich?

Lösung

Das sieht alles gut zu mir. Es ist durchaus sinnvoll try catch-Blöcke in einem Fang zu haben. Sie können alle Dinge überprüfen Sie erwähnt, aber es gibt immer die Möglichkeit, dass das Netz nach unten gehen, oder Sie werden einfach nur nicht in der Lage sein, diese Datei zu schreiben. Was Sie tun, nachdem das ist bis zu Ihnen. Eine Fehlermeldung und Pausieren Verarbeitung scheint vernünftig.

Andere Tipps

Das ist genau, wie Sie es tun würden, wenn nur mit Ausnahmen. Sie sollten erwägen Flags verwenden, aber das ist nicht besser entweder:

(Set file processing error flag to false)
Try
   (Do Some Logic, but an error happens)
Catch ex As Exception
   (Set file processing error flag to true)
End Try

IF (file processing error flag = true)
   Try
       (Attempt to move file)
   Catch exinner as Exception
       Throw New Exception("Cannot move file to Error Directory", innerex)
   End Try
   (Raise Error Event for logging by form/batch app)
End Try

Nicht viel besser ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top