我总是在纠结在哪里放置 try catch block 。例如,我有一个数据库类,其方法接受两个参数。 FindObject(字符串在哪里,字符串顺序)。此方法使用指定的 where 和 order 字符串执行 sql 查询。
在一个类中,我有一个名为 IsUsed 的属性,该属性如下所示:
public bool IsUsed
{
get
{
ClassA a = new ClassA();
Collection<ClassA> myCollection = a.FindObject("Id = 1","");
if(..) // etc
}
}
不管这种做法巧妙与否,我只想知道如果sql查询执行出错,try catch应该放在哪里。
我应该将 try catch 放在哪里,以便通知用户出现错误?
- 在 FindObject 方法中?
- 在 IsUsed 属性中?
- 我在哪里调用 IsUsed 属性?
- 其他地方?但是在哪里
最佳答案
我尝试遵循一个相当简单的规则:我设置一个 try..catch block 如果我能以合理的方式处理异常。如果我无法对异常做任何有意义的事情,我会让它冒泡到调用代码。
作为旁注,我会避免在属性 getter 中执行(可能很长的)数据库调用。我通常尝试让属性只是设置或从支持字段中获取值,让其他方法执行数据库查找等。这将使代码对于编写调用代码的人来说更可预测(属性访问通常是一种廉价操作,而方法调用通常可能更昂贵)。
关于c# - 在哪里实现 try catch block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3624914/