São exceções realmente para erros excepcionais? [fechadas]

É meu entendimento que a sabedoria comum diz apenas usar exceções para condições verdadeiramente excepcionais (na verdade, eu vi essa declaração aqui na SO várias vezes).

No entanto, Krzysztof Cwalina diz:

Um dos maiores equívocos sobre exceções é que eles são para “condições excepcionais”. A realidade é que eles são para comunicar condições de erro. Do ponto de vista do design do framework, não existe uma “condição excepcional”. Se uma condição é excepcional ou não, depende do contexto de uso, mas as bibliotecas reutilizáveis ​​raramente sabem como serão usadas. Por exemplo, OutOfMemoryException pode ser excepcional para um aplicativo de entrada de dados simples; não é tão excepcional que os aplicativos realizem seu próprio gerenciamento de memória (por exemplo, SQL server). Em outras palavras, a condição excepcional de um homem é a condição crônica de outro homem.

Ele então também diz que as exceções devem ser usadas para:

Erros de usoErros de programaFalhas do sistema

Considerando que Krzysztof Cwalina é a PM da equipe do CLR no MS, pergunto: O que você acha da declaração dele?

questionAnswers(15)

yourAnswerToTheQuestion