【发布时间】:2014-05-04 12:46:15
【问题描述】:
在 C# 中使用 XML cmets,我可以记录一个方法可能会引发异常:
<exception cref="FooException">Thrown if foo is invalid.</exception>
但是,如果一个方法在其 XML 文档中没有 exception 标记,这可能意味着以下两种情况之一:
- 作者彻底测试了该方法,确保它永远不会抛出异常,并希望通过不添加
exception标签来记录这一事实。 - 作者并不关心记录异常,所以这个方法可能会抛出任何东西。
根据我的经验,通常是第二种情况。那么问题来了:
如何明确记录方法永远不会引发异常?
到目前为止,我想出的最好的方法就是在方法的summary 中简单地提及它,例如“此方法不会引发异常”。但我想知道是否有更正式的方式来表达这一点,比如 C++ 中的throw()(尽管这可能是一个不好的例子)。
【问题讨论】:
-
很难保证一个方法不会抛出 any 异常——考虑
OutOfMemoryException和ThreadAbortException。我想您能做的最好的事情就是在<remarks>部分提及该方法通常不应引发异常。
标签: c# exception xml-comments code-documentation