close
第一次遇到這樣的問題,雖然還不清楚原因是什麼,但起碼找到解決方法。
程式碼結構如下:
//新增資料到A資料庫的程式碼
try
{
//將剛新增的資料同步到另一台主機的B資料庫
Response.Redirect("~/test/tset.aspx");
}
catch (Exception ex)
{
//出錯後,將原本新增至A資料庫的資料刪除
//後續處理
}
就是這樣簡單的程式碼,但卻因為Response.Redirect()丟出了"無法評估運算式,
因為程式碼已經最佳化..."的例外,
使得兩台資料庫都新增成功,卻因為此例外又將A資料庫的資料刪除,資料都錯亂了。
目前最單純的解決方案便是,將Response.Redirect()拿到try catch之外執行,
try catch內加個布林值判斷是否丟出例外,
沒有丟例外的話,才會執行Response.Redirect(),程式碼如下:
//新增資料到A資料庫的程式碼
bool check = false;
try
{
//將剛新增的資料同步到另一台主機的B資料庫
check = true;
}
catch (Exception ex)
{
check = false;
//出錯後,將原本新增至A資料庫的資料刪除
//後續處理
}
if(check == true)
{
Response.Redirect("~/test/tset.aspx");
}
全站熱搜
留言列表