¿Qué parte de lanzar una excepción es cara?


En Java, usar throw/catch como parte de la lógica cuando no hay realmente un error es generalmente una mala idea (en parte) porque lanzar y atrapar una excepción es costoso, y hacerlo muchas veces en un bucle suele ser mucho más lento que otras estructuras de control que no implican lanzar excepciones.

Mi pregunta es, es el costo incurrido en el tiro/captura en sí, o al crear el objeto de Excepción (ya que obtiene una gran cantidad de información de tiempo de ejecución, incluida la ejecución stack)?

En otras palabras, si lo hago

Exception e = new Exception();

Pero no tirarlo, es que la mayor parte del costo de lanzar, o es el tiro + catch manejo lo que es costoso?

No estoy preguntando si poner código en un bloque try/catch aumenta el costo de ejecutar ese código, estoy preguntando si capturar la Excepción es la parte costosa, o crear (llamar al constructor para) la Excepción es la parte costosa.

Otra forma de preguntar esto es, si hice una instancia de Excepción y lo lanzó y lo atrapó una y otra vez, ¿sería significativamente más rápido que crear una nueva Excepción cada vez que lanzo?


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52