求保證程序健壯性的方法


在系統中, 我將數據庫操作放在類中, 供其它程序調用, 有的函數需要返回值, 如查詢, 但為了保證程序健壯, 在每個函數中, 我都用了try...catch進行糾錯,我想如有錯, 將錯誤信息顯示在彈出框中,我發現, 好象在類中無法實現。我現在只好將錯誤信息和正常信息一起, 進行字符串連接后, 用返回值傳回頁面, 然后再分離, 判斷是否有錯, 但自我感覺, 此種方法挺煩, 大家有無更好的方法。謝謝賜教。

6 个解决方案

#1


數據庫訪問類中
public DataSet GetDataSet(ref string emsg)
{
    DataSet ds = new DataSet();
    string sql = "...";
    try
    {
        ds = ...;        
    }
    catch(Exception ex)
    {
        emsg = ex.Message;
        ds = null;
    }
    return ds;
}

調用:
string emsg = string.Empty;
DataSet ds = 類.GetDataSet(ref emsg);
if(emsg != string.Empty)
{
    //彈出出錯對話框
}

#2


throw  a exeception
沒什么好方法,每個數據使用前多判斷,可以拋出自定義的錯誤,方便調用的時候處理

#3


過渡使用try catch會嚴重影響性能,特別是系統中很重要的數據訪問層。
我覺得,你的問題應該是屬於編碼和設計的問題,應該在DEBUG版本中多加一些Assert,對於一些無法預計的錯誤,還是應該讓他產生,以便后期你能夠發現系統中的BUG。

using System.Diagnostics;

Debug.Assert(參數判斷);

#4


throw 一個確切的異常

#5


個人認為一段好的程序不僅僅是健壯性吧

#6


your application is a web application or winform application?

if it is a web appliation, do not catch general exception, catch specif exception. and you can catch all exception in application_error() and give a freindly page.

if your application is a winform application, you can catch all exception in main() method and give friendly message then restart your application.

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com