欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# WinForm捕獲全局異常(捕獲未處理的異常)

admin
2023年9月4日 11:56 本文熱度 598

許多公司的項目都缺少異常處理模塊,我們也是。經常會出現這種情況,用戶在UI界面操作,就直接跳出堆棧調用的異常信息對話框,老板看到那叫一個火?。∧銈兊拇a怎么天天出現亂碼。呵呵!這就是沒有異常捕獲處理導致的,現在許多人寫代碼都沒意識處理異常,只要實現功能就好,我的許多組員也是如此。

項目剛接手,所以打算做一個異常全局捕獲,統一處理的模式,采用具體詳細信息的對話框提醒與日志文件保存方式。以下是根據網上找的C#winform全局異常捕獲做了點修改。(等項目異常處理全部完成后,將心得體會做個記錄,此處暫對全局異常捕獲做個記錄)

1.  static class Program

2.      {

3.          /// <summary>

4.          /// 應用程序的主入口點。

5.          /// </summary>

6.          [STAThread]

7.          static void Main()

8.          {

9.              try

10.            {

11.                //設置應用程序處理異常方式:ThreadException處理

12.                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

13.                //處理UI線程異常

14.                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

15.                //處理非UI線程異常

16.                AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

17.

18.                #region 應用程序的主入口點

19.                Application.EnableVisualStyles();

20.                Application.SetCompatibleTextRenderingDefault(false);

21.                Application.Run(new Form1());

22.                #endregion

23.            }

24.            catch (Exception ex)

25.            {

26.                string str = GetExceptionMsg(ex,string.Empty);

27.                MessageBox.Show(str, "系統錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);

28.            }

29.        }

30.

31.

32.        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)

33.        {

34.            string str = GetExceptionMsg(e.Exception, e.ToString());

35.            MessageBox.Show(str, "系統錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);

36.            //LogManager.WriteLog(str);

37.        }

38.

39.        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)

40.        {

41.            string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString());

42.            MessageBox.Show(str, "系統錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);

43.            //LogManager.WriteLog(str);

44.        }

45.

46.        /// <summary>

47.        /// 生成自定義異常消息

48.        /// </summary>

49.        /// <param name="ex">異常對象</param>

50.        /// <param name="backStr">備用異常消息:當exnull時有效</param>

51.        /// <returns>異常字符串文本</returns>

52.        static string GetExceptionMsg(Exception ex,string backStr)

53.        {

54.            StringBuilder sb = new StringBuilder();

55.            sb.AppendLine("****************************異常文本****************************");

56.            sb.AppendLine("【出現時間】:" + DateTime.Now.ToString());

57.            if (ex != null)

58.            {               

59.                sb.AppendLine("【異常類型】:" + ex.GetType().Name);

60.                sb.AppendLine("【異常信息】:" + ex.Message);

61.                sb.AppendLine("【堆棧調用】:" + ex.StackTrace);

62.            }

63.            else

64.            {

65.                sb.AppendLine("【未處理異常】:" + backStr);

66.            }

67.            sb.AppendLine("***************************************************************");

68.            return sb.ToString();

69.        }

70.    }


該文章在 2023/9/4 11:57:30 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved