编程文汇

C#中Exception的性能开销

  • try catch finally 语句本身在编译后,只不过是条件比较、流程跳转,不存在多少额外开销。
  • 在异常发生、或者throw new xxx,只要实际抛出了异常,就会产生不小的开销,因为这时要获取调用栈,估计会涉及大量的反射,这个开销很高。
  • 所以,如果系统中没有大量发生异常(异常被try catch吃掉、被隐藏,只要出现了异常,开销就逃不掉),就不会对系统运行产生影响。