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");

}

 

arrow
arrow
    全站熱搜

    ciner945 發表在 痞客邦 留言(2) 人氣()