【发布时间】:2012-01-26 13:08:44
【问题描述】:
为什么System.Xml.XmlReader.GetAttribute(String)找不到属性不抛出异常?!乍一看似乎很荒谬和危险。
【问题讨论】:
为什么System.Xml.XmlReader.GetAttribute(String)找不到属性不抛出异常?!乍一看似乎很荒谬和危险。
【问题讨论】:
因为找不到指定属性并没有什么“异常”。如果它是可选的呢?然后你会依赖抛出的异常来控制你的程序流程吗?
这不是一个好习惯 - 您应该在使用它之前简单地检查返回值是否为 null。
【讨论】:
异常不应用于控制流。正如 Chris McAtackney 所说,如果属性是可选的呢?当由于缺少属性而捕获异常时,对控制流使用异常会增加开销。只检查空字符串会更好更高效。
【讨论】: