2017-02-23 4 views
0

Ich habe das Support-Ticket erhalten, das mich (unangenehm) taub macht. Die WPF-Anwendung den folgenden Code hat temporäres Verzeichnis zu entfernen:Catch all Block fängt nicht DirectoryNotFoundException

try 
       { 
        Directory.Delete(dir, true); 
       } 
       catch 
       { 
        // ignored 
       } 

Das Hauptfenster‘Dispatcher nicht behandelte Exception-Handler zeigt nur das Dialogfeld mit den Informationen auf Ausnahme (einschließlich dem Stack). Und hier ist sie:

System.IO.DirectoryNotFoundException: Es konnte kein Teil des Weg finden 'C: \ Users \ xxx \ AppData \ Local \ Temp \ 6 \ 86248143'. bei System.IO .__ Error.WinIOError (Int32 errorcode, String maybeFullPath)
bei System.IO.Directory.Delete (String fullPath, String userPath, Boolesche rekursiven, Boolean checkHost) bei Aufruf der Methode Directory.Delete

Kann mir jemand darauf hinweisen, warum die Ausnahme nicht in den Fang aller Block gefangen wurde?

+0

Verwenden Sie Visual Studio? – GBursali

+0

Das Problem im Release-Modus und passiert nur beim Kunden vor Ort - die Ausnahme wird nicht in der nächsten catch-Block gefangen, sondern propagiert, bis UnhandledExceptionHandler aufgerufen wird -, wie ich es aus Logs sehen –

Antwort

0

Stellen Sie sicher, dass that CheckBox nicht aktiviert ist. Es ignoriert die Try-Catch-Blöcke und "bricht, wenn dieser Ausnahmetyp ausgelöst wird" Hinweis; Ich denke, es war Visual Studio.

+0

Nein, das Problem ist nicht in VS beim Debuggen. Das Problem im Release-Modus tritt nur beim Kunden auf - die Ausnahme wird nicht im nächsten catch-Block abgefangen, sondern solange weitergegeben, bis UnhandledExceptionHandler aufgerufen wird –

Verwandte Themen