最近调试一个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所有异常。这种改变异常传播路径的行为,深深的伤害使用者。
后生,请不要改变异常传递路径。