Nos anos que passei programando e desenvolvendo sistemas, há apenas duas situações em que achei o padrão em questão útil (em ambos os casos, a supressão continha também o registro da exceção lançada, não considero captura e nullretorno simples como uma boa prática. )
As duas situações são as seguintes:
1. Quando a exceção não foi considerada um estado excepcional
É quando você executa uma operação em alguns dados, que podem ser lançados, você sabe que podem ser lançados, mas você ainda deseja que seu aplicativo continue em execução, porque você não precisa dos dados processados. Se você os receber, é bom; se não, também é bom.
Alguns atributos opcionais de uma classe podem ser lembrados.
2. Ao fornecer uma nova (melhor, mais rápida?) Implementação de uma biblioteca usando uma interface já usada em um aplicativo
Imagine que você tenha um aplicativo usando algum tipo de biblioteca antiga, que não emitiu exceções, mas retornou nullpor erro. Então, você criou um adaptador para esta biblioteca, copiando praticamente a API original da biblioteca e está usando essa nova interface (ainda não lançada) em seu aplicativo e manipulando as nullverificações por conta própria.
É apresentada uma nova versão da biblioteca, ou talvez uma biblioteca completamente diferente, oferecendo a mesma funcionalidade que, em vez de retornar nulls, gera exceções e você deseja usá-la.
Você não deseja vazar as exceções para o aplicativo principal, portanto, suprimi-las e registrá-las no adaptador criado para quebrar essa nova dependência.
O primeiro caso não é um problema, é o comportamento desejado do código. Na segunda situação, no entanto, se em todo lugar o nullvalor de retorno do adaptador da biblioteca realmente significa um erro, refatorar a API para gerar uma exceção e capturá-la em vez de procurar nullpode ser (e geralmente é em termos de código) uma boa idéia.
Pessoalmente, uso a supressão de exceção apenas no primeiro caso. Eu o usei apenas para o segundo caso, quando não tínhamos orçamento para fazer o restante do aplicativo funcionar com as exceções em vez de nulls.