|
|
1
17
我所看到的实现这一点的方法需要一种额外的方法:
通过这样做,作用域对象可以跟踪它是由于错误还是成功的操作而被释放。这是 TransactionScope ,例如(请参见 TransactionScope.Complete ) |
|
|
2
13
作为一个侧重点,il允许您指定seh
|
|
|
3
7
我在为单元测试寻找类似的东西——我有一个助手类,我在测试运行后用来清理对象,我想保持良好的、干净的“使用”语法。我还希望在测试失败的情况下不清理。我想到的是打电话 Marshal.GetExceptionCode() . 我不知道这是否适用于所有情况,但对于测试代码来说,它似乎工作得很好。 |
|
|
4
5
我能想到的最好办法是:
当然,
|
|
|
5
3
以下模式避免了API误用的问题,即没有调用作用域完成方法,即完全忽略,或者由于逻辑条件而没有调用。我认为这可以更紧密地回答您的问题,而且对于API用户来说,它的代码更少。 编辑 在丹的评论之后,更直截了当的是:
|
|
|
6
1
我认为最好的办法是用写出来
然后,当您编写自己的代码时-或者使用
你可以用其他的技巧来获得幻想,但是感觉太重了,甚至没有效率。让我包括一个代码示例。 懒惰方式 :
手动方式 :
|
|
|
7
1
如果有
有许多文章建议使用API函数来查明是否存在挂起的异常。这种方法的一个主要问题是,代码可能在
事实上,最好的方法可能是有一个明确的“成功”方法,如果不调用它,就假定失败,并且认为忘记调用“成功”方法的后果应该是显而易见的,即使没有抛出异常。作为一个简单的实用方法,有一件事可能会有所帮助,比如
因此,允许如下代码:
而不是
|
|
|
8
0
为什么不简单地从一个
从其他人如何使用您的类来看,这似乎更为现实。您确定每个曾经使用过它的人在发生异常时都不会希望处理它吗?或者这个行为应该由类的消费者来处理? |
|
|
lfox · 如果列中不存在某个值,则停止代码执行 4 年前 |
|
juztcode · 在C++中尝试捕获-创建了多少个对象 8 年前 |
|
|
Novic · 结果不明确时如何使用tryCatch 8 年前 |
|
|
Jacob Nelson · 多次尝试表达式,直到在R中成功 8 年前 |
|
|
Mert Yücel · 如何在布尔方法中引发三个异常? 8 年前 |
|
|
Jatt · 捕获从setInterval内部引发的异常 8 年前 |