在我的對象轉換的代碼,我有一大堆:如何在處理C#中的異常時壓縮大量小的Try-Catch塊?
try
{
NativeObject.Property1= int.Parse(TextObject.Property1);
}
catch (Exception e)
{
Trace.WriteLineIf(ConverterSwitch.TraceVerbose, e);
}
try
{
NativeObject.Property2= DateTime.Parse(TextObject.Property2);
}
catch (Exception e)
{
Trace.WriteLineIf(ConverterSwitch.TraceVerbose, e);
}
等等......我不希望所有轉換失敗的某些屬性的原因,所以我不能把這一切都在一個try塊,但我需要登錄,如果有什麼失敗,並繼續..
有沒有辦法來壓縮所有這些嘗試抓住的東西?
可惜我們不能像C#代碼寫:
try
{
int num = int.Parse("3");
decimal num2 = decimal.Parse("3.4");
}
catch (Exception e)
{
Trace.Write(e);
continue; //continue execution from the point we left. (line 2)
}
如果切換到VB.NET,你可以使用'上的錯誤恢復Next` :-) – 2010-12-09 16:27:45
某處VB6/VBA開發者在你的竊笑。從來沒有想過我會聽到有人鬆「因爲錯誤恢復下一個」 – JohnFx 2010-12-09 16:28:24
@Cody:哦,上帝。哦,上帝不。請不。 – cdhowie 2010-12-09 16:29:15