2015-11-02 109 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似乎更容易做到,但這需要分析代碼並將其分解爲邏輯。

相關問題