日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

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

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

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

下面以“除數(shù)為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;

    }

}

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

 

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

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

微軟的SQL Server數(shù)據(jù)庫產(chǎn)品中提供了非常多的公用DLL。

如果你的SQLSERVER安裝在C盤的話,下面的路徑就是相應(yīng)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 = "異常信息!"; //獲取或設(shè)置要在異常消息框中顯示的頂級消息的文本

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


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


            msgBox.ShowToolBar = true;


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

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


            msgBox.ShowCheckBox = true;

            msgBox.IsCheckBoxChecked = true;

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


            msgBox.HelpLink = ex.HelpLink; //獲取或設(shè)置指向與頂級消息相關(guān)聯(lián)的幫助文件或幫助網(wǎng)頁的鏈接


            DialogResult dr = msgBox.Show(this);


            if(dr == DialogResult.OK)

            {

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

            }


            alwaysShow = msgBox.IsCheckBoxChecked;

        }

    }

}

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

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

 

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

該窗體中把所有的異常信息以樹狀方式列出,點擊不同的樹節(jié)點,右側(cè)顯示對應(yīng)具體的異常信息。

該中展現(xiàn)方式更加直觀明了,更便于開發(fā)環(huán)境下異常的跟蹤與處理。

 

關(guān)于ExceptionMessageBox更加詳細的信息請參考MSDN:

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


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

主站蜘蛛池模板: 乳乱公伦爽到爆 | 国产www尤物精品在线观看 | 亚洲成aⅴ人在线观看 | 电视剧大全免费全集观看。 | 国产在线观看第二十三页 | 久热爱精品视频在 | 欧美高清国产一区二区三区 | 每日更新国产精品视频 | 国产精品大白天新婚身材 | 午夜未满十八勿入网站2 | 91精品国产人成网站 | 91精品国产福利尤物免费 | 性爱影院三级国产 | 国产菲菲视频在线观看 | 18岁禁止入内 | 免费看国产精品3a黄的视频 | 国产欧美日韩综合一区在线 | 精品欧美视频第二页在线观看 | 中年熟女乱子正在播放 | 综合网www| 国产精品成aⅴ人片在线观看 | 日本精品视频 | 免费中文字幕不卡 | 欧美精品亚洲精品日韩专区va | 在线观看国产成 | 国产精品一区韩国电影日本 | 亚洲综合一区二区三区 | 手机午夜福利1000视频 | 91最新人成在线观看 | 国产精品免费aⅴ片在线观看 | 字幕一区二区三区四区 | 九九99亚洲精品 | 亚洲欧美国产精品一区二区 | 欧美日韩精品一区二区在线观看 | 亚洲自拍欧美日韩丝袜 | 国产日韩中文字幕 | 国产午夜福利精品一区 | 中文字幕精品视频在线 | 亚洲一区二区又黄又爽在线观看 | 中文字幕精品卡通动漫 | 中文字幕欧美第一页 |