我有一个有两个 catch 块的代码函数。我在下面发布代码:
public void UpdateGroup(String strSiteID, String strGroup, int row)
{
try
{
Console.WriteLine("UpdateGroup");
Excel1.MWMClient.MWMServiceProxy.Group group = new Excel1.MWMClient.MWMServiceProxy.Group();
group.name = "plumber";
group.description = "he is a plumber";
Console.WriteLine(groupClient.UpdateGroup(strSiteID, group));
ExcelRecorder(0, null, null, row);
}
catch (System.ServiceModel.FaultException<DefaultFaultContract> ex)
{
ExcelRecorder(ex.Detail.ErrorCode, ex.Detail.Message, ex.Message, row);
}
catch (Exception ex)
{
ExcelRecorder(0, "", ex.Message, row);
}
finally
{
System.GC.Collect();
}
}
我认为第一个 catch 块足以捕获我的代码中可能发生的所有异常。但我注意到,有时,第一个 catch 块没有捕获一些一般异常。这就是为什么我添加了第二个 catch 块。为什么会这样?为什么我的第一个 catch 块不能涵盖所有异常?