天天看點

後生:請不要改變異常傳遞路徑

最近調試一個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所有異常。這種改變異常傳播路徑的行為,深深的傷害使用者。

後生,請不要改變異常傳遞路徑。