2015-03-31 82 views
0

我在asp.net MVC webAPI項目中的控制器中嘗試並捕獲塊。當異常被捕獲時阻止Asp.net MVC WebAPI停止(需要按下繼續)

這是我得到的異常,如果我搞砸日期輸入

類型「System.ArgumentException」發生在 mscorlib.dll中,但在用戶代碼中沒有處理的例外

附加信息:具有相同密鑰的項目已添加 。

我嘗試添加以下

 catch (Exception e) 
     { 
      output.Add("requestStatus", "fail"); 
      output.Add("errorSumary", "=== Exception in SOAP request ==="); 
      output.Add("errorSuggestion", "effectiveDate was not in the right format or the date already past"); 
      logger.Error("Error: ActivateController - effectiveDate was not in the right format"); 
     } 

但是當這種異常觸發我仍然必須按在Visual Studio中的繼續按鈕,使這個程序繼續運行。 有什麼辦法可以讓異常停止程序的運行嗎? (即所以我沒有點擊綠色繼續在Visual Studio按鈕)

我知道我應該嘗試趕上everyType異常和妥善地處理他們,我只是想一個內置的故障保護,允許如果它繼續運行滑到地毯下(然後我登錄然後使用Nlog,這樣您就可以看到是否有任何東西通過類似splunk的東西被破壞)。

+0

什麼是「做什麼」?爲什麼你捕捉到這個特定的異常vs不是?只有在調試應用程序時纔會按下「繼續」,而不是在運行時才按下。在真實世界的情況下(應用程序託管)沒有繼續按鈕。 – Kritner 2015-03-31 17:53:44

+0

看到更新,我正在做的是捕捉一個普通的異常,但它停止執行到我的程序。有沒有辦法讓它繼續下去? 我正在對soap API進行外部調用,我無法更改其代碼。 – 2015-04-06 18:59:58

+0

@Kritner我意識到我有一個盒子檢查,說「當這個異常類型是用戶未處理的時候中斷」。代碼很好 – 2015-04-07 14:29:19

回答

0

因此,事實證明,爲了解決這個問題,我只需要在visual studio中更改以下設置,以便在調試模式下運行時進行檢查。

設置被稱爲

休息的時候這個異常類型是用戶未處理。

我能夠通過從切換的Visual Studio版本配置「調試發佈」該程序不僅會捕獲該異常來證實這一點,但該程序將不再停止因而其執行繼續捉它的時候並再次不中斷程序。我沒有意識到,默認情況下,調試配置在開箱時打開了「當此異常類型是用戶未處理的時候中斷」。

您可以在我找到的兩個地方看到您的例外設置。 調試 - >異常(如果要重新啓用此行爲,也將其設置回默認值)。

有關調試設置的詳細信息可以在這裏找到 工具 - >選項 - >調試