錯誤發生通知機制-Call911
整個流程機制如下圖所示:
- 應用程式透過程式寫入到系統事件
- eventtriggers事件設定好,當事件發生時,執行c911.bat
- c911.bat 執行mnsbot.exe程式,送出訊息給接受者
- 接收者收到msn訊息
應用程式如何寫入系統事件?
我擴充了Exception類別,新增加Call911方法。程式只要在接到Exception的同時,呼叫Call911方法就可以將訊息寫到系統事件裏面。
try
{
throw new NotImplementedException();
}
catch (Exception ee)
{
ee.Call911("測試程式", "執行緒沒有實作的啦~");
}
如何開啟事件檢視器?
控制台\系統管理工具\事件檢視器
如何設定Eventtriggers
開啟cmd視窗,然後打以下命令創建一個eventtriggers
eventtriggers /create /tr "alert_UrlUpdater" /eid 911 /tk C:\c911.bat
eventtriggers是系統預設的工具,可以當某一個事件id發生時,觸發執行某一個bat檔。
上面這個命令意思是創建一個eventtrigger,觸發器名字叫"alert_UrlUpdater",要偵測的eventid是911,當此事件發生時,執行c:\c911.bat檔
c911.bat如何呼叫msnbot?
c911的內容如下:
C:\msnBot\MsnBot.exe rolence0515@pchome.com.tw URL更新器發生錯誤
以上命令執行msnbot.exe程式,傳入二個參數,第一個參數是接收者的msn帳號(rolence0515@pchome.com.tw ),第二個參數是要接收到的字串(URL更新器發生錯誤)
msnbot該如何設定?
msnbot是小雷寫的一個程式,可以傳送訊息給某人。要接收到訊息,必須先加入reddoor@hotmail.com為友人才可以收到訊息
會寫入什麼事件訊息?
如上圖所示:
錯誤訊息(工程師):為你當初透過Call911(),所傳入的參數,這個訊息可以口語一點,方便理解。
錯誤訊息(系統):為例外錯誤的系統訊息
Exception型別:例外錯誤的型別
錯誤程式:哪一個執行檔觸發錯誤的,方便追蹤
錯誤發生的CallStack:程式在哪一個檔案,哪一行出錯的,方便除錯。