Try Catch对效能影响的测试
从合作开始注意了对Try Catch的使用,当时想的是既然错误处理能让程序在测试的时候不出错,那么为什么不在每个程序段上都加上错误处理呢(当时用三层架构开发的系统,只在U层和SQLHelper加上了错误处理)?后来通过和别人交流得知Try Catch会影响程序效能,至于怎么影响的就不得而知了。
在网上查了一番,得到的结论是Try Catch只会在Catch抓住异常的时候影响效能,没有异常的时候对于效能没影响。恰好昨天看到同班同学的博客,对异常处理影响效能做了测试,结论是加了异常处理对效能的影响微乎其微(运行时间增加了1ms)。
先放下别人的结论,咱们自己动下手,写下测试的代码:
可以看到,没有Try Catch的test1和有Try Catch 但没有抛出异常的程序时间一样,有Try Catch 并抓住异常的test3运行所用时间大概增加了11ms,不到一倍的样子(多次运行测试,时间虽有不同,但相差不多)。从这个测试可以看出,加了Try Catch确实会影响效能。
做程序,考虑性是一方面,程序的稳定也是一个相当重要的方面,因此在有可能出错的地方加上Try Catch 还是非常必要的。