我有以下問題:如何處理異常而不退出循環?
我嘗試插入multiple employee data
,但員工數據應插入只有一次,但如果我選擇多個員工,其中一人已經被之前插入,根據數據庫約束會拋出一個錯誤。
我的問題是(最佳實踐):如何處理此異常,我想繼續插入不重複的員工而不退出我的循環,因爲該異常。
protected void ibtn_save_detail_Click(object sender, ImageClickEventArgs e)
{
try
{
Fill_Form();
RewardDetails obj = new RewardDetails();
var collection = ddl_employees.CheckedItems;
for (int i = 0; i < collection.Count; i++)
{
obj.Emp_num = int.Parse(collection[i].Value);
obj.Req_ser = int.Parse(reqSer);
obj.Req_year = int.Parse(reqYear);
DataTable dt = Utilities.GetDep(obj.Emp_num);
obj.Main_code = int.Parse(dt.Rows[0]["dep_code"].ToString());
obj.Year = int.Parse(dt.Rows[0]["dep_year"].ToString());
obj.Dep_name = dt.Rows[0]["dep_name"].ToString();
string res = obj.InsertReward();//exception in case of repetition .
if (!string.IsNullOrEmpty(res))
{
div_detail_result.Visible = true;
SetMessage("");
}
else
{
SetMessage("Adding the employee has been done :" + collection[i].Text.Trim());
}
}
BindDetailsGV(obj.Req_ser, obj.Req_year);
ddl_employees.ClearCheckedItems();
}
catch (Exception ee)
{
SetMessage("Error,this employee has been added before.");
ddl_employees.ClearCheckedItems();
}
}
繼續使用; try&catch在循環內部 –