如何在c#中抛出静默异常?

时间:2011-05-25 08:20:26

标签: c# silverlight

我有一个绑定到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弹出的事实,它都能顺利运行。是否有任何异常要提升或属性设置,以便调试器留在后台?

3 个答案:

答案 0 :(得分:5)

您可以通过转到调试&gt;设置导致调试器中断的异常类型。例外即可。取消对公共语言运行时例外投掷复选框,或单独选择您的例外类型。

答案 1 :(得分:5)

你不应该抛出Exception类的实例。您应该抛出一个派生自Exception

的类的实例

您可以创建自己的异常类(如果您有一些框架尚未涵盖的内容,则应该不习惯)然后您可以选择希望Visual Studio中断的异常。

创建异常类后,转到Debug - &gt; Exceptions ...然后选择要使调试器中断的异常。

答案 2 :(得分:3)

在Visual Studio中按Ctrl-Alt-E打开调试器的异常配置,然后选择或取消选择所需的内容。