Пройдя здесь по большинству ответов, я хотел бы добавить пару мыслей.
Полагаться на комментарии к документации XML и ожидать, что на них будут полагаться другие, - плохой выбор. Большая часть кода C #, с которым я столкнулся, не документирует методы полностью и согласованно с комментариями документации XML. И еще более серьезная проблема заключается в том, что без проверенных исключений в C # как вы могли бы документировать все исключения, которые генерирует ваш метод, чтобы пользователь API знал, как обрабатывать их все по отдельности? Помните, вы знаете только о тех, которые вы бросаете с помощью ключевого слова throw в своей реализации. API-интерфейсы, которые вы используете внутри своей реализации метода, также могут вызывать исключения, о которых вы не знаете, потому что они могут быть не задокументированы, и вы не обрабатываете их в своей реализации, поэтому они взорвутся перед лицом вызывающего вашего метод. Другими словами,
Андреас связал интервью с Андерсом Хейлсбергом в ответах здесь о том, почему команда разработчиков C # решила не использовать проверенные исключения. Окончательный ответ на исходный вопрос скрыт в этом интервью:
Программисты защищают свой код, написав повсюду try finally, поэтому они будут корректно отступать, если произойдет исключение, но на самом деле они не заинтересованы в обработке исключений.
Другими словами, никого не должно интересовать, какого рода исключение можно ожидать для конкретного API, поскольку вы всегда будете ловить их все повсюду. И если вы действительно хотите заботиться о конкретных исключениях, то как их обрабатывать зависит от вас, а не от кого-то, кто определяет сигнатуру метода с помощью чего-то вроде ключевого слова Java throws, вынуждая пользователя API обрабатывать определенные исключения.
-
Лично я тут рвусь. Я согласен с Андерсом в том, что проверка исключений не решает проблему без добавления новых, других проблем. Как и в случае с комментариями XML-документации, я редко вижу код C #, в котором все заключено в блоки try finally. Мне кажется, что это действительно ваш единственный вариант и что-то вроде хорошей практики.