¿Por qué y por qué prefiere excepciones o códigos de retorno?

Mi pregunta es qué prefieren la mayoría de los desarrolladores para el manejo de errores, excepciones o códigos de devolución de errores. Sea específico del idioma (o familia de idiomas) y por qué prefiere uno sobre el otro.

Estoy preguntando esto por curiosidad. Personalmente, prefiero los códigos de retorno de error, ya que son menos explosivos y no obligan al código de usuario a pagar la penalización de rendimiento de excepción si no lo desean.

update: gracias por todas las respuestas! Debo decir que aunque no me gusta la imprevisibilidad del flujo de código con excepciones. La respuesta sobre el código de retorno (y sus manijas de hermano mayor) agrega mucho ruido al código.

Respuestas a la pregunta(46)

Su respuesta a la pregunta