Wie kann ich viele kleine Try-Catch-Blöcke komprimieren, wenn Ausnahmen in C # behandelt werden?

7

In meinem Objektumwandlungscode habe ich Tonnen von:

%Vor%

Und so weiter ... Ich möchte nicht, dass jede Konvertierung wegen einer Eigenschaft fehlschlägt, also kann ich nicht alles in einen try-Block setzen, aber ich muss protokollieren, wenn etwas fehlschlägt und weitermachen.
< stark> Gibt es eine Möglichkeit, all diese Dinge zu verdichten?

Schade, wir können nicht in C # schreiben wie:

%Vor%     
Alex Burtsev 09.12.2010, 16:24
quelle

6 Antworten

8

Nein, aber Sie können:

%Vor%

und dann

%Vor%     
vc 74 09.12.2010, 16:27
quelle
12

Sie können die TryParse-Methoden verwenden, sofern verfügbar. Siehe folgenden Beispielcode zum Analysieren eines Int32-Werts.

%Vor%     
Bob Black 09.12.2010 16:30
quelle
3

Sie könnten so etwas tun:

%Vor%

Dann:

%Vor%     
cdhowie 09.12.2010 16:28
quelle
1

Es klingt, als ob Sie nach etwas suchen, das VBs ähnlich ist On Error + Resume Next . C # hat keine solche Einrichtung. Die beste Art der Komprimierung, die ich mir vorstellen kann, ist die Verwendung von Lambda-Ausdrücken und Hilfsmethoden.

%Vor%     
JaredPar 09.12.2010 16:28
quelle
0

Sie könnten eine SafeConvert-Klasse schreiben, die die Konvertierung und Protokollierung wie folgt kapselt:

%Vor%

}

    
SpeksETC 09.12.2010 16:32
quelle
0

Obwohl ich mir über die Verkürzung der Ausnahmeblöcke nicht sicher bin, gefällt mir die Idee, die Sie vorgeschlagen haben. Es ist vergleichbar mit On Error Resume Next in VB von alt. Wenn ich viel Parse-ing betreibe, würde ich den Weg der Verwendung von TryParse gehen, wenn es verfügbar ist. Sie könnten dann etwas wie sagen:

%Vor%     
Tom 09.12.2010 16:33
quelle