Hier im obigen Codebeispiel habe ich zwei Funktionen ReadFile und ReadCSVFile.
In der ReadCSVFile erhalte ich eine Ausnahme vom Typ FileNotFoundExceptioon, der im catch-Block (FileNotFoundException) abgefangen wird. Aber wenn ich diese Ausnahme in den Catch (FileNotFoundException) der ReadFile () - Funktion zu fangen, wird es in den Fang (Ausnahme) -Block statt catch (FileNotFoundException) gefangen. Darüber hinaus wird beim Debuggen der Wert von ex als Object Not Initialized angegeben. Wie kann ich die Ausnahme von der aufgerufenen Funktion in den catch-Block der aufrufenden Funktion werfen, ohne die innere Ausnahme oder zumindest die Ausnahmebedingung zu verlieren?
Sie müssen throw;
anstelle von throw ex;
verwenden:
Außerdem brauchen Sie, wenn Sie nichts anderes in Ihrem catch-Block als retrowing tun, den catch-Block überhaupt nicht:
%Vor%Implementieren Sie den catch-Block nur, wenn Sie der Ausnahme zusätzliche Informationen hinzufügen möchten, indem Sie eine neue Ausnahme mit der abgefangenen als innere Ausnahme auslösen oder wenn Sie die Ausnahme behandeln möchten. Sie müssen keinen Catch-Block in jeder Methode implementieren, in der eine Ausnahme auftreten kann.
Tags und Links c# exception-handling try-catch-finally