如何明确方法可以抛出异常?

时间:2009-08-14 17:04:53

标签: c# coding-style

我正在创建的方法之一抛出异常。什么是显示(在代码或注释中)我的方法可能抛出异常的最清晰的方式,因此需要将try {}和catch {}应用于我的方法。

谢谢!

3 个答案:

答案 0 :(得分:24)

在方法的文档注释中使用<exception/> tag

/// <summary>Does Foo</summary>
/// <exception cref="System.ArgumentNullException">
/// Thrown when bar is null.
/// </exception>
public void Foo(Bar bar) 
{ 

}

使用<exception/>标记的一个好处是Visual Studio会将此信息包含在方法信息工具提示中,如下所示:

答案 1 :(得分:1)

在所有MSDN文档中,每种方法都会显示它可能会抛出的内容。我喜欢这个想法,因此在我的评论中我做了类似的事情:

  

// throws:MyDangerousError,   StupidProgrammerError

如果您想了解更多细节,您可以解释在每种错误被抛出的情况下,通常虽然错误名称足以为用户提供一个想法。

答案 2 :(得分:1)

可悲的是,清晰度不是唯一的问题。否则,你可以这样做:

public void Method_MayThrowException() {
  ..
}

由于其他原因,这是不受欢迎的,因此可以通过intellisense获取的评论可能效果最佳。

此外,如果您对加载项或进程修改持开放态度,您可以阅读有关Spec#的内容。或者你可以实现FxCop规则。