gpt4 book ai didi

c# - try catch 每个数据库连接?

转载 作者:太空狗 更新时间:2023-10-29 19:55:14 26 4
gpt4 key购买 nike

是否建议在每个打开数据库连接的函数中放置一个 try-catch block 并在那里记录错误,或者我应该在应用程序的更高层捕获错误?

public static Category GetCategoryByName(string name)
{
Category result;
try
{
using (IDbConnection conn = ConnectionHelper.CreateDbConnectionByName(_connectionStringName))
{
conn.Open();
using (IDbCommand cmd = conn.CreateCommand())
{
//do stuff
}
}
}
catch(Exception e)
{
// log error here?
}
return result;
}

或者说

try
{
Category myCat = DataTools.GetCategoryByName("myCat");
// other stuff
}
catch(Exception e)
{
// log error here?
}

总结一下:代码中的错误是否应该尽早捕获?或者我应该在我有更多关于上下文的信息的地方捕获它们?

最佳答案

一如既往,这取决于情况,但一般来说,只有在您可以对其进行处理,或者您有特定代码(例如重试)发生,或者您希望采用非常一般的异常并包装时,才捕获异常它变成一个更具体的业务逻辑的异常,否则,让异常冒泡,最顶层可以以集中的方式记录它/处理它。

任何其他方式都会导致大量日志记录代码散布在所有业务逻辑中。

关于c# - try catch 每个数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680845/

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