Я бы предположил, что вам лучше подумать о , почему код генерирует исключения, в отличие от простого и без дальнейшего рассмотрения требования, чтобы весь код был заключен в какой-нибудь try / catch / finally или другой.(Между прочим, если бы это было возможно, было бы тривиально убрать его из строя - разработчики могли бы просто обернуть главную точку входа в попытку / улов, и больше никаких предупреждений).
Кодовые контракты - это инструмент, который не будет делать то, о чем вы здесь просили, но он поможет вам понять поведение вашего кода во время компиляции с помощью предупреждений компилятора.Это скажет вам такие вещи, как когда клиентский вызов задерживает возвращаемое значение, а метод службы может возвращать ноль.Это становится причиной возникновения исключительных действий, а не просто требует их обработки.В этом случае у вас неверное предположение программирования - вы не хотите перехватывать это исключение, вы хотите устранить его, не допуская его возникновения в первую очередь.
Я бы сохранил обработку исключений для местгде вы имеете дело с внешними факторами, которые находятся вне вашего контроля (например, пользователь отключает сетевой кабель, когда ваше приложение загружает файл).Мне кажется, что вы ищете проверенные исключения в стиле Java, которых нет в C #.Но если вы посмотрите на метод XML-комментариев для внешних библиотек, вы сможете увидеть, какие исключения они могут генерировать, и обработать эти конкретные случаи.Если вы действительно делаете это только для внешних целей (и используете кодовые контракты для управления внутренними предположениями), то потраченное дополнительное время будет невелико.