【发布时间】:2013-11-07 11:24:51
【问题描述】:
什么时候最好使用try and catch?当我使用 try and catch 回答问题时,我得到了愤怒的回应(有些甚至 -1 我......)我用谷歌搜索并找到了这个 article 和这个 stackoverflow question。
我举几个例子:
我有一个带有time zone IDs 的下拉列表,当用户选择他的时区时,我正在更新数据库。在其他应用程序中,我从数据库中提取这个值并重新计算用户当前时间和日期。有一个选项是数据库中的数据拼写错误(数据库中的硬编码更改或错误)。在我使用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问题相同??
【问题讨论】:
-
什么问题?因为这真的取决于手头的问题。
-
@BoltClock 那-1 answer is here 是投反对票的人。
-
@SriramSakthivel - 你看,这就是我爱你的原因,你是坚持
-
@Servy - 我每天都在尝试获得程序员的意见。
-
@Izikon 这不是 SO 的用途。基于高度意见的问题不太适合本网站的格式,因此是不允许的。