C# 屏蔽由于崩潰彈出的windows異常彈框
windows應(yīng)用程序(包括控制臺)在運行時如果出現(xiàn)了未處理的異常會出項windows的異常提示框

這個提示框在平時并沒有什么影響。但是當(dāng)我們使用啟動的是一個服務(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)默認(rèn)處理程序?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)站的支持!
相關(guān)文章
C#實現(xiàn)將Word轉(zhuǎn)化分享為電子期刊
曾經(jīng)由一個項目,要求實現(xiàn)制作電子期刊定期發(fā)送給企業(yè)進行閱讀,由編輯人員使用 Microsoft Word先生成PDF文件,然后將生成的PDF文件轉(zhuǎn)化為JPEG文件,最后將JPEG文件生成電子書模式,本文給大家介紹了C#實現(xiàn)將Word轉(zhuǎn)化分享為電子期刊,需要的朋友可以參考下2023-12-12
winform攔截關(guān)閉按鈕觸發(fā)的事件示例
這篇文章主要介紹了c# winform攔截關(guān)閉按鈕觸發(fā)的事件示例,大家參考使用吧2014-01-01

