【发布时间】:2013-09-21 15:23:34
【问题描述】:
例如,BitConverter.GetBytes Method (Int64) 和 XmlUrlResolver Constructor 都没有记录为抛出异常。他们是否通过使用返回值来指示错误?
【问题讨论】:
标签: c# .net exception base-class-library
例如,BitConverter.GetBytes Method (Int64) 和 XmlUrlResolver Constructor 都没有记录为抛出异常。他们是否通过使用返回值来指示错误?
【问题讨论】:
标签: c# .net exception base-class-library
如果它们的逻辑不能引起任何错误,则方法不需要抛出异常。这在BitConverter.GetBytes 的情况下很明显;对于任何Int64 值,都保证转换成功。
any 方法可能会抛出一些灾难性异常,例如OutOfMemoryException 或StackOverflowException。
【讨论】:
OutOfMemoryException?
XmlUrlResolver 构造函数,我刚刚在.NET 参考源中检查了它,下面是该构造函数的实现方式:public XmlUrlResolver() { }。失败的方法并不多。
int64 传递给GetBytes 方法。如果您以某种方式设法编译它(例如,通过手动编辑 IL),那么 CLR 本身将抛出一个 InvalidProgramException,与 OOM 或 SOE 在同一类中