我刚刚在一个项目中发现:
try
{
myLabel.Text = school.SchoolName;
}
catch
{
myPanel.Visible = false;
}
我想与开发人员交谈而不是写这个,说会引发空异常(因为school
理论上可能为空,而不是myLabel
)实际上会使计算机嘟嘟三声,休眠两秒 http://blogs.msdn.com/ricom/archive/2003/12/19/44697.aspx。不过,我想知道我是否记错了这方面的规则。显然,这不是 try/catch 的预期用途,但是这是否因为违背意图而不好,或者因为性能考虑而不好?我觉得这很糟糕,但我想说的不仅仅是“这真的很糟糕”。
您不应该仅仅因为设计不好而将异常用于控制流。这没有道理。例外是针对特殊情况,而不是针对正常流程。在这种情况下,性能可能不会成为问题,因为对于现代硬件上的大多数现代应用程序来说,您可能会整天抛出异常,并且用户不会注意到性能受到影响。但是,如果这是一个处理大量数据或执行大量某种工作的高性能应用程序,那么性能将是一个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)