他们告诉我们不要使用异常来控制程序的流程,因为抛出异常很慢。我从来没有听过任何解释为什么抛出异常这么慢。
所以问题是:
抛出异常的机制是什么?涉及哪些可能会影响性能的特定操作?
编辑:
一些澄清:我想听听操作系统需要什么额外的工作来处理抛出异常。用户模式和内核模式之间是否有一些昂贵的切换?或者也许构造异常对象是昂贵的?或者,也许我缺少切换程序流程的东西?我的问题与编程语言无关(我希望如此,但证明我错了)。但是,如果您需要一些锚点,那么我对与该主题相关的 .NET 内部最感兴趣。
编辑2:
我对异常性能没有任何问题。我只是想了解这种机制的内部结构。
编辑3:
让我的问题更清楚了。