2010年6月8日 星期二

無預期的例外

有一些伺服器軟體,可能會發生例外,但是下try卻又無從下起。搞一個大大的try又覺得很醜,程式閱讀性也降低。

但是一但發生例外時,卻必需讓下個周期時間到時仍持續工作。不因此次的例外而停止。


一樣,還是需要在Program或者其他程式入口處理撰寫,當然,你要寫在哪裡都可以。只要搞定生命週期就可以了。



using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace DisposeTest
{
    static class Program
    {
        /// <summary>
        /// 應用程式的主要進入點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            //就是這個事件,當整個應用程式有例外發生,且未被作例外處理時。就會觸發這個事件。
            //而且只要有繫結這個事件,有例外狀況時。程式會自已停止執行,並觸發這個事件。真是一勞永逸。
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            //實作程式碼……
        }
    }
}

1 則留言:

  1. 這個很實用!!還可以大大減少整個專案的程式碼,收下~感謝分享

    回覆刪除