2 つの 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 ブロックがいくつかの一般的な例外をキャッチしていないことがあります。そのため、2 つ目の catch ブロックを追加しました。なぜそれが起こっているのですか?最初の catch ブロックですべての例外をカバーできないのはなぜですか?