.NET 4.0 New Feature - Environment.FailFast


.NET 4.0中新增FailFast(String, Exception)多載方法,該多載方法主要是在應用程式損壞無法修復且執行try…catch…finally將會損壞程式資源下使用 ,可將訊息和例外狀況資訊寫入至 Windows 應用程式事件記錄檔後終止處理序,不會執行到try…catch…finally區塊。



實際看個使用上的例子,假設今天我們的程式發生了例外,且該例外我們無法將它修復,我們可以像下面這樣撰寫:



using System;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
Environment.FailFast(“A castrophic failure has occured.”, new DivideByZeroException ());
}
catch (Exception)
{
Console.WriteLine(“catch…”);
}
finally
{
Console.WriteLine(“finally…”);
}
}
}
}



運行後程式會強迫終止,catch與finally區塊也不會運行到,運行後我們開啟事件檢視器,打開應用程式的事件,我們可以看到剛剛的運行讓我們多了兩筆事件,一個事件會告知發生的問題、堆疊、與寫入的訊息。


image



一個事件則是會有例外的資訊。


image



Link



  • Environment.FailFast 方法 (String, Exception)