2015-11-02 53 views
2

我正在使用Visual Studio 2013 Ultimate,目前没有机会升级到Visual Studio 2015检查目标方法可能抛出.Net的所有可能异常吗?

我正在寻找一种方法来确定所有可能的例外的一目标会员可以抛出,所以研究我听说微软的Pex这是一个IDE扩展VS2008/VS2010它试图确定“所有”的可能的例外的一目标会员可以抛出:

enter image description here

我不知道关于它的逻辑或它如何工作,因为我不能为我的Visual Studio版本安装它,它是作为一个MSI包,打开包装后,似乎就没有一个vsixmanifest文件,以使the known trick到让我们为更新的Visual Studio版本进行扩展。

顺便说一句,微软暴露了PEX的Visual Studio的功能所取代2015年命名IntelliTest

新:IntelliTest在Visual Studio 2015是Pex的演变。 IntelliTest是Visual Studio Enterprise 2015中集成的一项功能。 IntelliTest与Fakes一起使用。

但是我不要,我听到的评论这样认为,因为PEX似乎与有关确定可能的异常(如注释例如here)的唯一目的的小工具,IntelliTest似乎全功能单元测试包,我不感兴趣,我只是想检查目标成员可能的例外情况。

所以,下面我的研究还发现ExceptionHunter展鹏年代:

enter image description here

却成了2010年全年停产的软件,因为技术上的原因后的.Net Framework 2.0的出现,以及RedGates不在他们的网站上向这个有用的软件提供更多的下载网址,我找不到这个软件。因此,今天在.Net开发中,程序员可以通过自动化的方式确定目标成员可能抛出的所有可能的异常情况。

请注意,我不是在寻找一个完整的单元测试功能,如NUnit的,因为这些包装种类满足了很多,我不需要的功能,但如果一个单元测试包一样,提供了一个简单的方法以确定一个成员的所有例外,然后我接受建议。

+0

通过了解函数调用中所有可能的异常,您认为您获得了什么? – xxbbcc

+0

@xxbbcc有机会发现然后处理潜在的例外情况,我们可能会错过第一次看到的所有情况。感谢您的评论。 – ElektroStudios

+2

你会如何使用这种自动程序的输出?您将以何种方式每天使用它? “发现”潜在异常的常用方法是阅读所述方法的API文档 - 可能的异常应该出现在任何半面体API文档中。 –

回答

1

对我来说,这似乎很难做到。在你知道它可以抛出什么异常之前,你必须知道方法的内部工作,或者你必须依赖那些并不总是那么可靠的文档来明确什么是异常(尽管微软是一个体面的工作)。

您不可能检查很多常见的异常,例如OutOfMemoryExceptionStackOverflowException,DivideByZeroExceptionNullReferenceException似乎更容易做到,但这需要分析代码并将其分解为逻辑。

相关问题