gpt4 book ai didi

c# - 检查目标方法可以在 .Net 中抛出的所有可能的异常?

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:18 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2013 Ultimate,目前没有机会升级到 Visual Studio 2015

我正在寻找一种方法来确定目标成员可能抛出的所有可能的异常,因此通过研究我听说了 Microsoft Pex,它是 VS2008/VS2010 的 IDE 扩展,它试图确定“所有”目标成员可以抛出的可能异常:

enter image description here

我不确定它的逻辑或它是如何工作的,因为我无法为我的 Visual Studio 版本安装它,它作为 MSI 包提供,一旦解压似乎没有 vsixmanifest 文件制作 the known trick 让工作扩展适用于较新的 Visual Studio 版本。

顺便说一下,微软公开了 PEXVisual Studio 2015 的一个名为 IntelliTest 的功能所取代

NEW: IntelliTest in Visual Studio 2015 is the evolution of Pex. IntelliTest is a feature integrated in Visual Studio Enterprise 2015. IntelliTest works together with Fakes.

但是我不这么认为,因为根据我听到的评论,PEX 似乎是一个具有与确定可能的异常相关的独特目的的小工具(例如评论 here ),IntelliTest 似乎是一个功能齐全的单元测试包,我对此不感兴趣,我只想检查目标成员的可能异常。

因此,根据我的研究,我还发现了 RedGate 的 ExceptionHunter:

enter image description here

但在 .Net framework 2.0 出现后,由于技术原因,它在 2010 年成为停产软件,RedGates 在他们的网站上不再提供这个有用软件的下载 url,我找不到这个软件。

那么,在今天的 .Net 开发中,程序员可以做什么来自动确定目标成员可以抛出的“所有”可能异常?

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

最佳答案

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

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

关于c# - 检查目标方法可以在 .Net 中抛出的所有可能的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33485542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com