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 sistemaConsiderando que Krzysztof Cwalina é a PM da equipe do CLR no MS, pergunto: O que você acha da declaração dele?