Pau*_*ner 58
根据经验,检查现有的.NET框架异常,以便在派生自己的异常之前抛出合适的异常.要直接回答您的问题,目前没有可用的"缺失数据"异常,但这并不意味着没有合适的例外来涵盖您的情况.
在你的情况下,谦虚InvalidOperationException可能是合适的; 在对象上调用方法时抛出此异常,但对象的状态不适合该操作.这方面的示例包括调用封闭流上的方法和已经通过集合末尾的枚举器.如果XML数据是对象的内部状态,并且方法调用已发现错误数据,InvalidOperationException则是一个很好的候选者.
如果要将XML数据传递给方法,则ArgumentException其衍生物或其衍生物可能是合适的选择.这些异常中有一小部分,都表明传递给方法的参数不是预期的方法.
当您希望以与其他异常不同的方式处理异常情况时,您只需要创建自定义异常.如果您确实选择创建自己的异常,请确保从更高的异常派生它Exception,以便基类隐含异常的性质.
对于一般的缺失数据场景,数据由唯一 ID 引用,那么KeyNotFoundException可能是合适的 - 例如
throw new KeyNotFoundException($"Expected record for key {key} not found.");
它位于System.Collections.Generic命名空间中。