在系統中, 我將數據庫操作放在類中, 供其它程序調用, 有的函數需要返回值, 如查詢, 但為了保證程序健壯, 在每個函數中, 我都用了try...catch進行糾錯,我想如有錯, 將錯誤信息顯示在彈出框中,我發現, 好象在類中無法實現。我現在只好將錯誤信息和正常信息一起, 進行字符串連接后, 用返回值傳回頁面, 然后再分離, 判斷是否有錯, 但自我感覺, 此種方法挺煩, 大家有無更好的方法。謝謝賜教。
6 个解决方案
數據庫訪問類中
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)
{
//彈出出錯對話框
}
throw a exeception
沒什么好方法,每個數據使用前多判斷,可以拋出自定義的錯誤,方便調用的時候處理
過渡使用try catch會嚴重影響性能,特別是系統中很重要的數據訪問層。
我覺得,你的問題應該是屬於編碼和設計的問題,應該在DEBUG版本中多加一些Assert,對於一些無法預計的錯誤,還是應該讓他產生,以便后期你能夠發現系統中的BUG。
using System.Diagnostics;
Debug.Assert(參數判斷);
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.