¿Por qué los bloques de prueba son caros?

He escuchado el consejo de que debes evitar intentar atrapar bloques si es posible, ya que son caros.

Mi pregunta es específicamente sobre la plataforma .NET: ¿por qué son costosos los bloques de prueba?

Resumen de las respuestas:

Claramente hay dos campos en este tema: los que dicen que los bloques de prueba son caros y los que dicen "quizás un poquito".

Aquellos que dicen que los bloques de prueba son caros normalmente mencionan el "alto costo" de desenrollar la pila de llamadas. Personalmente, no estoy convencido por ese argumento, especialmente después de leer acerca de cómo se almacenan los manejadores de excepcionesaquí.

Jon Skeet se sienta en el campamento de "quizás un poquito", y ha escrito dos artículos sobre excepciones y rendimiento que puedes encontraraquí.

Hubo un artículo que me pareció extremadamente interesante: hablaba de "otras" implicaciones de rendimiento de los bloques de prueba (no necesariamente de memoria o consumo de CPU). Peter Ritchie menciona que encontró que el código dentro de los bloques de prueba no está optimizado como lo haría el compilador. Puedes leer sobre sus hallazgos.aquí.

Finalmente, hay una entrada de blog sobre el tema del hombre que implementó las excepciones en el CLR. Ve a ver el artículo de Chris Brumme.aquí.

Respuestas a la pregunta(11)

Su respuesta a la pregunta