什么时候最好使用 try and catch?当我使用 try and catch 回答问题时,我得到了愤怒的回应(有些甚至 -1 我......)我用谷歌搜索并找到了这篇文章和这个 stackoverflow问题。
我举几个例子:
我有一个带有时区 ID的下拉列表,当用户选择他的时区时,我正在更新数据库。在其他应用程序中,我从数据库中提取这个值并重新计算用户当前时间和日期。有一个选项是数据库中的数据拼写错误(数据库中的硬编码更改或错误)。在我使用try and catch的用户日期时间的转换方法中,有人告诉我这是错误的!我可以使用 for 循环检查数据库中的值,但每次转换日期时间时都会花费更多......
我必须使用以下代码声明 XML 文件的格式是否正确:
protected bool IsValidXML(string xmlFile) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlFile); } catch(XmlException ex) { ///write to logger return false; } return true; }
我看不到任何其他方法来检查 xml 文件。
有时我在我的应用程序中有一部分正在写入文件。写入文件可能会由于多种原因导致执行,其他一些进程在写入或其他时正在使用该文件。所以通常我使用这个代码:
using (StreamWriter w = new StreamWriter(fs)) { try { w.Write("** (Line) " + someValue + " **" + Environment.NewLine); w.Flush(); } catch(IOExeption ex){} finally { w.Close(); } }
总之,我看到了一些使用 try 和 catch 的方法以及不使用的方法。我看到的文章中的一句话说如果发生异常,你需要知道它。,但是在处理通用应用程序时,大多数时候我知道会发生异常,但大多数时候我真的不知道为什么会发生,所以我之前无法捕捉到它(就像我写的例子一样),所以什么时候最好使用 try and catch
在 ASP.NET 的同一级别中,页面有一个错误事件,您可以像这样捕获它:
this.Error += new EventHandler(Page_Error); //this = instance of System.Web.UI.Page
事件是否与try catch问题相同?