避免重複使用if語句,或直接執行return語句,避免使用goto語句
//title: tackle the multple workflow together by once at the end
//author: aletenze
//time: 2011-12-10
//version: 1.0.0.2
/* 介面通用返回碼
-1 - 引數錯誤
-2 - 串列埠未開啟
-3 - 寫串列埠資料失敗
-4 - 讀串列埠資料失敗
-5 - 包檢驗出錯
-6 - 包錯
-7 - 韌體錯誤
-999 - 未知錯誤(異常)
*/#define success_return_value (0) //函式成功執行返回值
#define tl_success (0)
#define param_err (-1)
#define port_disopen_err (-2)
#define writedata_err (-3)
#define readdata_err (-4)
#define pkg_check_err (-5)
#define pkg_data_err (-6)
#define firmware_err (-7)
#define unknown_err (-999)
#define max_process_count (1<<31) //最大的整數, max(int)
#define break_while_value max_process_count //最大的process數目
int process1(); //工作1
int process2();// 工作2
int process3(); //工作3
int loginfo(lpctstr format,...); // 記錄日誌函式
int getret(int param1, int param2)
//---------------------開始執行工作流---------------------
while(temp_success_return && processcount=0)
"以內為可變內容,只要最終得到乙個nret值即可
// 為了保證,這個演算法的正常執行,避免死迴圈,請不要在"{}"
//內部更改 processcount的值,也不要執行「break」動作
nret=process1();
}temp_success_return=(success_return_value==nret);
processcount++;
break;
case 1:
"以內為可變內容,只要最終得到乙個nret值即可
// 為了保證,這個演算法的正常執行,避免死迴圈,請不要在"{}"
//內部更改 processcount的值,也不要執行「break」動作
nret=process2();
}temp_success_return=(success_return_value==nret);
processcount++;
break;
case 2:
"以內為可變內容,只要最終得到乙個nret值即可
// 為了保證,這個演算法的正常執行,避免死迴圈,請不要在"{}"
//內部更改 processcount的值,也不要執行「break」動作
nret=process3();
}temp_success_return=(success_return_value==nret);
processcount++;
break;
default:
processcount=break_while_value;
} }//---------------------結束工作流處理,進行結果判斷---------------------
switch(processcount)
case 1:
}break;
case 2:
}break;
case 3:
}break;
default:
logos<
} loginfo("%s\n",logos.str().c_str());
return nret;
}
統一處理異常
1.controlleradvice 註解定義全域性異常處理類 controlleradvice public class globalexceptionhandler 2.exceptionhandler 註解宣告異常處理方法,註解的方法的引數列表裡,還可以宣告很多種型別的引數 controlle...
Web應用架構 錯誤統一處理, 和事務統一處理
因為前期,重點放在業務分析上,這兩塊一直認真思考過,覺得很簡單.一開始只是找了乙個nhibernate的示例,就決定把session的open和close和事務 transaction 的commit,放在httpmodule中處理.算是session per request的模式.之後,繼續加入錯...
Web應用架構 錯誤統一處理, 和事務統一處理
因為前期,重點放在業務分析上,這兩塊一直認真思考過,覺得很簡單.一開始只是找了乙個nhibernate的示例,就決定把session的open和close和事務 transaction 的commit,放在httpmodule中處理.算是session per request的模式.之後,繼續加入錯...