列出方法可能抛出的所有异常

Kas*_*dum 8 .net static-analysis exception-handling visual-studio checked-exceptions

我知道Java强制程序员列出该方法将抛出的所有异常,从而创建一种简单的方法来列出代码用户可能抛出的所有异常.

另一方面,.NET没有这样的功能,我们剩下的就是API文档或XML文档,其中有时会列出异常.

是否有VS的插件显示任何给定调用可能抛出的异常?鉴于反射的强大功能,不应该通过调用查看,并查看可能的所有分支通过调用并检查是否抛出任何.NET异常?

Luc*_*ero 8

我所知道的唯一工具是来自红门软件的(商业)Exception Hunter.

但是,它并不像你想象的那样具有确定性.根据所使用的其他程序集的版本,如果使用的新版本在构建时抛出除预期之外的其他异常,则在构建时间之后抛出的异常可能会有所不同.

在Java中,您有"特殊"的RuntimeException,它不必在方法签名中声明(包括从中降序的所有异常).语言设计者选择不在C#中实现已检查的异常是有正当理由的(无论它们是否超过优势都是值得商榷的).一些Java开发人员只是在运行时异常中包装异常,或者他们忘记使用导致信息丢失的"原因"异常.

有一个很好的采访Anders Hejlsberg关于检查异常和一些推理,为什么C#没有它们 - 感谢adrianbanks的链接.

  • 有一个很好的采访Anders Hejlsberg关于检查异常和一些推理,为什么C#没有它们在这里:http://www.artima.com/intv/handcuffs.html (2认同)