代码之家  ›  专栏  ›  技术社区  ›  elmattic

缺少自定义属性时选择正确的异常类型

  •  3
  • elmattic  · 技术社区  · 14 年前

    我在选择上有些困难 要引发的正确异常类型 找不到预期的自定义属性时(我更喜欢现有的.NET异常之一)。

    编辑:

    以下是他的背景:

    [<ExpectedAttribute()>]
    let foo args ... = ...
    

    函数 foo (这是用户定义的)传递给运行时引擎。如果自定义属性不存在,运行时必须抛出异常。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Henk Holterman    11 年前

    如果 习俗 属性丢失,它将不适合 System

    您可以使用系统异常,但您的域是什么?什么样的合同被打破了?如果这是关于序列化或者测试或者。。。


    编辑,在您的 foo

    但我会定义我自己的 MissingExpectedAttribute 例外。

        2
  •  2
  •   Cylon Cat    14 年前

        3
  •  1
  •   Jon Hanna    14 年前

    如果调用的构造函数、方法或属性被赋予了违反规则的对象,则ArgumentException。如果打破规则的对象是前一个操作中状态的一部分,然后调用坚持此属性存在的方法或属性,则称为invalidooperation。