簡體   English   中英

如何在 c# 中拋出靜默異常?

[英]How to throw silent exception in c#?

我有一個綁定到 ComboBox 的屬性

    <ComboBox ItemsSource="{Binding AvailableTypes}"
            SelectedValue="{Binding Kind, Mode=TwoWay}}"/>

在屬性設置器中,我在某些業務情況下拋出異常以中止設置屬性。

    public MyKind Kind
    {
        get { return kind; }
        set 
        {
            if (kind != value)
            {
                if (SomeRuleFailed(value))
                throw new Exception("to be ate by binding code");
                kind = value;
            }
        }
    }

除了每次我引發異常時都會彈出 VS2010 之外,它運行順利。 是否有任何異常要引發或設置屬性,以便調試器留在后台?

您可以通過轉到Debug > Exceptions來設置導致調試器中斷的異常類型。 取消勾選Common Language Runtime ExceptionsThrow復選框或單獨選擇您的異常類型。

您不應該拋出Exception class 的實例。 您應該拋出一個派生自Exception的 class 的實例。

您可以創建自己的異常 class (如果您有一些框架尚未涵蓋的內容,您應該養成習慣)然后您可以 select 您希望 Visual Studio 中斷的異常。

一旦你創建了你的異常 class, go 到 Debug-->Exceptions... 然后選擇你想讓調試器中斷的異常。

在 Visual Studio 中按 Ctrl-Alt-E 打開 Debugger 的 Exception 配置和 select 或取消選擇您需要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM