Qual e por que você prefere códigos de exceção ou de retorno?

Minha pergunta é o que a maioria dos desenvolvedores prefere para tratamento de erros, exceções ou códigos de retorno de erro. Seja específico do idioma (ou da família de idiomas) e por que você prefere um ao outro.

Estou perguntando isso por curiosidade. Pessoalmente, prefiro os Códigos de retorno de erro, pois são menos explosivos e não forçam o código do usuário a pagar a penalidade pelo desempenho de exceção, se não quisere

update: obrigado por todas as respostas! Devo dizer que, embora eu não goste da imprevisibilidade do fluxo de código com exceções. A resposta sobre o código de retorno (e as alças dos irmãos mais velhos) adiciona muito ruído ao códig

questionAnswers(46)

yourAnswerToTheQuestion