公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

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

【C#】使用Microsoft.ExceptionMessageBox.dll捕獲WinForm程序中異常信息并彈窗顯示

admin
2024年6月6日 9:29 本文熱度 1899

WinForm程序開發中,在開發模式下對于異常的處理一般都是通過調試的方式來查找異常發生的未知與原因。

下面以“除數為0”的情況來具體說明。

Button按鈕事件如下:

private void button1_Click(object sender,EventArgs e)

{

    int numA = 1;

    int numB = 0;


    try

    {

        decimal result = numA / numB;

    }

    catch(Exception ex)

    {

        throw ex;

    }

}

編譯后運行程序,點擊按鈕,拋出異常:

 

上圖中雖然提示出“嘗試除以零”的異常信息,但是“詳細信息”按鈕下顯示的具體提示信息顯示的不是很友好。

下面給出一種更加友好的處理方式,在開發與測試時都可以使用。 

微軟的SQL Server數據庫產品中提供了非常多的公用DLL。

如果你的SQLSERVER安裝在C盤的話,下面的路徑就是相應SQLSERVER版本的公用DLL的存放路徑:

SQL2005  C:\Program Files\Microsoft SQL Server\90SDK\Assemblies

SQL2008  C:\Program Files\Microsoft SQL Server\100SDK\Assemblies

其中Microsoft.ExceptionMessageBox.dll 中的  ExceptionMessageBox 類 提供了顯示異常詳細信息的彈窗處理功能。

 項目中首先添加該dll的引用

并添加Using引用

Button按鈕事件修改如下:

bool alwaysShow = true; //定義全局變量,用于控制是否每次都顯示相同的異常信息


private void button1_Click(object sender,EventArgs e)

{

    int numA = 1;

    int numB = 0;


    try

    {

        decimal result = numA / numB;

    }

    catch(Exception ex)

    {

        if(alwaysShow)

        {

            ExceptionMessageBox msgBox = new ExceptionMessageBox();

            msgBox.InnerException = ex;

            msgBox.Text = "異常信息!"; //獲取或設置要在異常消息框中顯示的頂級消息的文本

            msgBox.Caption = "測試異常"; //獲取或設置異常消息框的對話框標題


            msgBox.Beep = true; //指定在顯示消息時是否播放可聽到的聲音


            msgBox.ShowToolBar = true;


            msgBox.Buttons = ExceptionMessageBoxButtons.OKCancel; //獲取或設置要在消息框中顯示的按鈕

            msgBox.SetButtonText("確定","取消");


            msgBox.ShowCheckBox = true;

            msgBox.IsCheckBoxChecked = true;

            msgBox.CheckBoxText = "總是顯示該信息";


            msgBox.HelpLink = ex.HelpLink; //獲取或設置指向與頂級消息相關聯的幫助文件或幫助網頁的鏈接


            DialogResult dr = msgBox.Show(this);


            if(dr == DialogResult.OK)

            {

                MessageBox.Show("點擊了【確定】按鈕!" + ex.StackTrace);

            }


            alwaysShow = msgBox.IsCheckBoxChecked;

        }

    }

}

ExceptionMessageBox 類提供了彈窗顯示異常信息的功能。

編譯后再次運行程序,點擊:

 

點擊左下角的第2個按鈕【顯示詳細的技術信息】,彈出如下窗體:

該窗體中把所有的異常信息以樹狀方式列出,點擊不同的樹節點,右側顯示對應具體的異常信息。

該中展現方式更加直觀明了,更便于開發環境下異常的跟蹤與處理。

 

關于ExceptionMessageBox更加詳細的信息請參考MSDN:

https://msdn.microsoft.com/zh-cn/library/microsoft.sqlserver.messagebox.exceptionmessagebox.aspx


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

主站蜘蛛池模板: 国产大片b站免费观看推荐 国产大片大全免费看软件下 | 国产成人免费永久播放视频平台 | 国产av一区 | 国产精品无码久久综合 | 国产av无码专区亚洲av蜜芽 | 成人午夜精品视频在线观看 | 国产精品白浆无码流出系列视频 | 福利姬液液酱喷水福利18禁 | 99精品国产兔费观看久久99 | 成人做爰视频www | 国产成人综合久久精品亚洲 | 激情欧美成人久久综合 | 国产亚洲综合无码一区二区 | 国产在线不卡一区二区完整版 | 国产中文字幕精品一区二区三区 | 国产一区在线观看不卡 | 91在线精品亚洲一区二区 | 高清无码一区二区在线观看吞精 | 国产成人丝袜视频在线观看 | 91久久成人免费 | 国产高清不卡视频在线播放 | 国产尤物精品自 | 国产成人麻豆亚洲综合无码精 | 国产美女白浆视频免费网站 | 国产成人在线免费网站 | 国产美女精品在线观看 | 国产欧美日韩综合在线成 | 成人精品日本亚洲成熟 | 国产精品大屁股白桨一区二区 | 成人午夜亚洲精品无 | 国产精品沙发午 | 国产三级精品三级在线专区91 | 福利片无码 | 国产欧美精品在线一区二区三 | 国产一级aa无码大片免费 | 极品人妻少妇一区二区三区 | 国产精品丝袜久久久久久聚色 | 国产无码免费激 | 国精产品一区一区三区糖心 | 国产在线第一区二区三区 | 国产欧美另类在线视频 |