人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

擊鼓傳花——輪詢式出錯處理機制的設計與完成(3)

擊鼓傳花——輪詢式出錯處理機制的設計與完成(3)

更新時間:2022-07-07 文章作者:未知 信息來源:網絡 閱讀次數:

ErrHdlEventLogClass:



該類是將錯誤信息寫入系統日志的具體實現類,該類繼承自AbstractHandleClass。用戶在自定義錯誤處理方式的時候,便可仿照該類來設計。具體代碼如下:



public class ErrHdlEventLogClass: AbstractHandleClass

{

public const int ID = 2; //錯誤處理方式的序號



public ErrHdlEventLogClass()

{

//

// TODO: Add constructor logic here

//

}



//重載了父類的方法,具體實現對錯誤信息的處理動作

public override int HandleError(ErrorMsgClass emsg)

{

if(this.HandleFlag(emsg,ID)) //判斷是否進行處理

{

try

{

EventLog el = new EventLog();

el.Source = emsg.hash["EventLogSource"].ToString();

el.WriteEntry(fmt.Format(emsg),EventLogEntryType.Error);

return 0;

}

catch

{

return 1; //處理失敗

}

}

else

{

return 9999; //用戶未選擇該種處理方式

}

}

}






ErrHdlMailClass:



該類是將錯誤信息通過郵件發送的具體實現類。具體代碼如下:



public class ErrHdlMailClass: AbstractHandleClass

{

public const int ID = 5;



public ErrHdlMailClass()

{

//

// TODO: Add constructor logic here

//

}



public override int HandleError(ErrorMsgClass emsg)

{

if(this.HandleFlag(emsg,ID))

{

try

{

MailMessage mail = new MailMessage();

mail.From = emsg.hash["MailFrom"].ToString();

mail.To = emsg.hash["MailTo"].ToString();

mail.Subject = emsg.hash["MailSubject"].ToString();

mail.BodyFormat = MailFormat.Text;

mail.Body = fmt.Format(emsg);



SmtpMail.Send(mail);



return 0;

}

catch

{

return 1;

}

}

else

{

return 9999;

}

}

}





--------------------------------------------------------------------------------

客戶端調用方式

以下是在用戶的Application中調用該錯誤處理機制的實現代碼:

ErrorHandleClass err = ErrorHandleClass.GetSingleton();//獲得錯誤處理類的實例

ErrorMsgClass emsg = new ErrorMsgClass(); //創建該錯誤信息的實例

emsg.hash.Add("MailFrom","lu224@oki.com"); //添加MailFrom信息

emsg.hash.Add("MailTo","lu224@oki.com"); //添加MailTo信息

emsg.hash.Add("MailSubject","A Test!");

emsg.hash["Assembly"] = "AssemblyName"; //錯誤所在的組件名稱

emsg.hash["Class"] = "ClassName"; //錯誤所在的類名

emsg.hash["ErrorCode"] = 1112; //錯誤代碼

emsg.hash["ErrorMessage"] = “Error message”; //錯誤信息

emsg.hash["Function"] = "FunctionName"; //錯誤所在的函數名

emsg.hash["Mode"] = Global.Mail; //設置錯誤處理方式

int t = err.HandleError(emsg); //執行錯誤處理





--------------------------------------------------------------------------------

總結

本文介紹了一種輪詢方式的錯誤處理機制的實現模型。該機制的優點是可以對錯誤處理的兩方面通過繼承進行定制。一是錯誤處理的方法,常見的方法有寫入系統日志、發送郵件、寫入日志文件、彈出錯誤信息框、寫入數據庫等等。該機制可以將這些方法都預先設計好,讓用戶進行選擇(可進行多重選擇),假如用戶希望的方法不在定義中,用戶只須繼承AbstractHandleClass,即可自己來設計錯誤的處理方式。二是錯誤信息的格式,用戶如果不習慣默認的錯誤信息輸出格式,那么繼承AbstractMessageFormatClass,即可自己定制錯誤信息的輸出格式和內容。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 宜州市| 浠水县| 和龙市| 潼关县| 漯河市| 望奎县| 武乡县| 娱乐| 磴口县| 中山市| 佳木斯市| 象州县| 汕尾市| 桂平市| 荔浦县| 三台县| 定安县| 仁化县| 裕民县| 辽阳县| 新巴尔虎左旗| 黑山县| 盘山县| 龙岩市| 福鼎市| 奉节县| 肇源县| 黄龙县| 平阴县| 贵阳市| 山丹县| 炉霍县| 昌乐县| 靖边县| 永川市| 鄯善县| 洪洞县| 永德县| 余姚市| 灵石县| 南通市|