如何修复C#中WPF项目的“捕获或抛出的类型必须从system.exception派生”错误?

时间:2019-05-08 21:35:36

标签: c# wpf validation overflow

我正在尝试为用户输入创建验证策略。但是我一直收到CS0155错误。

我尝试抛出异常,但是它并不能消除错误。

    catch (OverflowAction)
            {
                Debug.WriteLine(
                    "{0}.Validate: Int32 overflow (\"{1}\").",
                    GetType(), str);

                string errmsg = Properties.Resources.OverflowError;
                return new ValidationResult(false, errmsg);
               //throw new NotImplementedException();
            }

我希望验证器捕获异常并返回错误消息。

1 个答案:

答案 0 :(得分:0)

此错误表明您的OverflowAction类没有继承自Exception(或派生类)。

请参阅CS0155错误文档。

  

仅将从System.Exception派生的数据类型传递到catch块中。

OverflowAction应该看起来像

class OverflowAction : Exception
{
    // ...
}

您可能将OverflowActionOverflowException混淆了……