我有代码尝试数据库事务。 由于并发访问,这些可能会失败。
我想在重试循环中运行它们。即。尝试N次捕捉特定异常然后抛出它。
每个事务的所有代码都在静态函数内。
i.e
protected static ReturnType DoSomething(Connection conn, Arg1Type Arg1, Arg2Type Arg2...)
{
using (var transaction = conn.GetTransaction)
{
...
transaction.commit();
}
}
我能够想到的最好的方法是强制所有这些函数成为一个代理,为所有参数使用params object []。但这会抛弃所有类型的安全。
有更好的方法吗?
干杯