最近調試一個5年前寫的項目。結構複雜度請看圖:
前後3個大平台,資料庫3個,window服務8個...還有資料庫直接調用資料庫的, 看的心累。
這些都不是重點,下面一段代碼讓人死的心都有:
total = noSyncOrders.Count();//擷取待同步成功訂單數
ImspOrderServiceClient SyncOrder = DsBase.GetWCFService();
if (SyncOrder == null)
{
message = "訂單同步請求WCF連結失敗!";
return false;
}
else
{
try
{
syorder = SyncOrder.CreateSalesMain(noSyncOrders);
}
catch
{
message = "訂單同步請求WCF連結失敗!";
return false;
}
}
SyncOrder.CreateSalesMain(noSyncOrders)建立主訂單出錯,為什麼就斷定伺服器連結失敗呢?這C#寫的代碼catch不指明異常類型,預設catch所有異常。這種改變異常傳播路徑的行為,深深的傷害使用者。
後生,請不要改變異常傳遞路徑。