我在代码中有几个地方会抛出一个新的System.Xml.XmlException似乎合适。我可以做
throw new XmlException("Your XML sucks go fix it then try again.");
但是我认为最好是尽可能利用异常类特有的成员(否则,您最好每次都抛出一个普通的ol'
Exception
)。 SourceUri和LineNumber会有所帮助,但是它们只有get
方法,我无法为它们分配值!仅有3个构造函数重载,并且这些重载都没有为这些成员提供参数。我只能初始化Message
,别无其他。必须有某种方法可以用值填充这些数据成员,否则XmlException为什么会打扰他们?
我想我可以创建一个继承XmlException的新类,并编写一个初始化SourceUri等的新构造函数。但是,仍然必须有一种只使用XmlException的方法。对?
最佳答案
有一个采用sourceUri
参数的构造函数:
internal XmlException(string res, string[] args, string sourceUri)
但是由于它是内部的,因此只能在System.Xml程序集中调用。无论如何,我认为您不应该自己抛出
XmlException
。与XML相关的BCL类通常抛出此异常。您应该创建自己的异常并将其引发。