摘要:C#預設沒有攔截下面2個exception,假如有發生的話,可能就會直接結束程式.
同事提供的訊息。紀錄一下
C#預設沒有攔截下面2個exception,假如有發生的話,可能就會直接結束程式.
通常在呼叫廠商的DLL或是做Process操作時,會發生.
System.AccessViolationException: 嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀。
System.InvalidOperationException: 因為執行緒 (XXX) 已經結束,所以無法處理要求。
--------------------------------------------------------
修改方式,
1. 程式.exe.config
﹛ <runtime>
﹛ ﹛ <legacyCorruptedStateExceptionsPolicy enabled="true" />
﹛ </runtime>
</configuration>
2.主程式的進入點 ﹛Program.cs
﹛ ﹛ /// <summary>
﹛ ﹛ /// 應用程式的主要進入點。
﹛ ﹛ /// </summary>
﹛ ﹛ [STAThread]
﹛ ﹛ [HandleProcessCorruptedStateExceptions] ﹛//攔截特殊Exception,否則Try-Catch會擋不下來
﹛ ﹛ [SecurityCritical]
﹛ ﹛ static void Main()
﹛ ﹛ {
--------------------------------------------------------
參考來源:
============ 以下是簽名檔 ============
一個小小螺絲釘。
第一次建立Blog,希望以後能慢慢充實它。
Howard