<分区>
我正在处理的 API 变得相当大,现在我正在处理一些多线程的东西,所以我想确保我知道在任何给定点可能发生的所有异常。我知道 C# 没有必须为每个方法声明的已检查异常,如 Java,但我想我会在每个方法的文档中这样做。
考虑以下非常简单的示例:
/// <exception cref="System.DivideByZeroException">oh no, divide by zero.</exception>
int someMethod(int a, int b)
{
return a / b; //this might throw DivideByZeroException
}
//clearly this method can never throw a DivideByZeroException
int someOtherMethod(int a)
{
return someMethod(a, 2);
}
我是否将 DivideByZeroException 标记添加到“someOtherMethod”?
当然这只是一个非常简单的例子,真正的代码更复杂,但有时我知道一个子方法抛出的异常永远不会发生。不是因为我捕获了它,而是因为我总是会向它传递有效的参数。
如果我想要异常文档,那么我有 3 个选项:
1) 表现得好像那个异常永远不会发生并且不将标记添加到文档中(因为它永远不会发生,而且我有单元测试来支持它)。
2) 为我知道永远不会发生的异常添加异常标记。
3) try catch 并忽略,以确保它永远不会发生,因此我可以有意识地将它从异常列表中删除。
我最喜欢选项 1,但是对此有任何指导方针吗?