您好,登錄后才能下訂單哦!
windows應(yīng)用程序(包括控制臺)在運行時如果出現(xiàn)了未處理的異常會出項windows的異常提示框
這個提示框在平時并沒有什么影響。但是當我們使用啟動的是一個服務(wù)器程序時,我們的要求應(yīng)該是盡可能快的重啟應(yīng)用。
但是由于這個提示框?qū)е挛覀兊牡谌绞刈o程序并不知道應(yīng)用已經(jīng)崩潰退出,導(dǎo)致我們無法及時處理。
所以,我們應(yīng)該在程序啟動時再做一個處理,即添加未處理異常的事件
C#: AppDomain.CurrentDomain.UnhandledException
解釋: 此事件提供通知未捕獲的異常。 它允許應(yīng)用程序來記錄有關(guān)異常的信息,系統(tǒng)默認處理程序?qū)惓蟾娼o用戶和終止應(yīng)用程序之前。 如果提供了有關(guān)狀態(tài)的應(yīng)用程序的足夠信息,可以采取其他措施-例如保存更高版本的恢復(fù)的程序數(shù)據(jù)。 建議小心,因為不處理異常時,可能會損壞程序數(shù)據(jù)。
在該事件中我們可以從容的捕獲異常、記錄然后退出重啟。
示例代碼:
class Program { static int m_count = 0; static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; while(true) { Func1(); Thread.Sleep(10); } } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine("有未經(jīng)處理的異常,程序即將退出!"); Thread.Sleep(5000); Environment.Exit(-1); } static void Func1() { m_count++; if(m_count > 100) { throw new Exception(); } } }
結(jié)果:
總結(jié)
以上所述是小編給大家介紹的C# 屏蔽由于崩潰彈出的windows異常彈框,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。