XmlReader.GetAttribute()没有';Don’不要抛出异常

本文关键字:Don 抛出异常 GetAttribute 没有 XmlReader | 更新日期: 2023-09-27 18:21:34

如果找不到属性,为什么System.Xml.XmlReader.GetAttribute(String)不抛出异常?!乍一看,这似乎既荒谬又危险。

XmlReader.GetAttribute()没有';Don’不要抛出异常

因为找不到指定属性并没有什么"异常"。如果它是可选的呢?那么,您会依靠抛出的异常来控制程序流吗?

这不是一个好的做法-在使用之前应该简单地检查返回值是否为null。

控制流不应使用异常。正如Chris McAtackney所说,如果属性是可选的呢?当由于缺少属性而捕获异常时,对控制流使用异常会增加开销。只检查一个空字符串会更好、更高效。