Possible Duplicate:
Performance Cost Of 'try'
我在MSDN的“处理异常的最佳实践”中偶然发现了这一说法:
“使用异常处理会更好,因为在正常情况下执行的代码更少”
是否应该在调用方法之前检查对象的状态还是仅调用该方法并捕获异常。以上建议是在很少发生例外事件的情况下。
假设属性检查不会暗示要进行昂贵的计算,而只是返回一个状态值,那么在非抛出情况下,try / catch块的执行成本与属性检查相比要便宜多少?
我想知道这个建议,因为即使try / catch是免费的或接近免费的,在许多情况下,被调用的方法也会自行进行大量检查。
最佳答案
除非引发异常,否则.NET中的异常非常便宜。提出例外情况后,有效成本就会大大增加。
话虽如此,我强烈建议您在此处编程为最易维护的解决方案,并在以后(且仅在测量后证明是问题)才担心性能。
仅返回状态的属性get方法经过优化,可以进行字段查找,并且几乎是单个操作-通常,任何操作都比稍后执行的速度慢。但是,我怀疑异常处理是否会对您的整体速度产生任何明显的影响,除非它处于非常非常紧密的循环中-在这种情况下,整体性能可能不会比为避免异常处理而进行的检查更糟糕。 。
关于c# - .NET试试/便宜吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4025523/