|
10
|
| Scott Munro Shimmy Weitzhandler · 技术社区 · 16 年前 |
|
|
1
14
这意味着您不需要为失败案例添加手动try/finally(或catch)块(可能带有“success”标志)。试着重写上面的代码以在出错时回滚,看看它有多混乱。。。 基本上,正常的期望行为是仅在到达块末尾时提交,没有异常。实现这一点的最简单方法是在块的末尾放置一个表示成功的方法调用。 |
|
2
15
这是更多的代码。 编辑:
其他一切都是危险的或糟糕的风格。
您必须绝对确保在提交时没有任何错误
. 只需在没有任何特殊错误处理的情况下实现事务,并在最后提交它。当发生任何错误时,您不必关心和回滚。考虑,异常几乎可以在每一行代码中抛出(eg. NullReference、溢出、无效操作等)。那么还有什么比这更容易的呢? |
|
|
3
4
但是,严肃地说,设计用于防止部分或不正确更新的机制中的默认行为肯定必须是 承诺,不是吗? |
|
|
4
3
我认为,正如@Jon Skeet所说,为成功而编写的代码数量比目前的方式要少(也不那么难看)。然而,从交易的角度来看,我认为你会 希望 保持悲观,并假设除非明确指出成功,否则你会将其退回。在我看来,错误地提交事务比由于代码错误而意外地未能提交成功的事务要糟糕得多。 |
|
|
Van Thoai Nguyen · MSSQL如何正确锁定行并插入? 9 年前 |
|
|
bilpor · MSMQ忽略事务作用域 10 年前 |
|
|
Aleksandar · 获取事务的开始和结束时间-SQL Server 11 年前 |