gpt4 book ai didi

c# - 如何正确处理泛型类中的错误?

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:46 24 4
gpt4 key购买 nike

我正在处理一个通用类,并且正在处理错误。我在出现错误的地方使用 try catch。问题是,如何将该错误返回给调用方法?

    public static DataTable GetData(string connString, string sqlStatement, Action<iDB2ParameterCollection> parameters)
{
DataTable dt = new DataTable();

using (iDB2Connection conn = new iDB2Connection(connString))
{
using (iDB2Command cmd = new iDB2Command(sqlStatement, conn))
{
conn.Open();
if (parameters != null) { parameters(cmd.Parameters); }
try
{
using (iDB2DataAdapter da = new iDB2DataAdapter(cmd)) { da.Fill(dt); }
}
catch (iDB2SQLErrorException e)
{
}

conn.Close();
}
}

return dt;
}

最佳答案

不在基类中捕获它!

我不喜欢在基类级别捕获和吞噬异常。

让您的派生类担心这些细节。

旁注(立场证据):您会注意到,在几乎任何 API 中,文档都会报告类将抛出哪些异常。如果他们在基类中捕获它们,他们实际上已经吞噬了它们,使您作为所述类的用户变得无助。

其他文章:

...instead of writing our abstractions based on details, the we should write the details based on abstractions.

这是依赖倒置原则的核心内容。

看看这篇文章,了解在您的设计过程中需要考虑的一些非常好的事情,http://www.oodesign.com/design-principles.html

关于c# - 如何正确处理泛型类中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8857932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com