Я знаю, что Java осуществляет программиста для списка всех исключений, которые будут выданы методом и таким образом созданием простого способа перечислить всю возможную вызванную исключительную ситуацию для пользователя кода.
.NET, с другой стороны, не имеет такой функции и всего, с чем нас оставляют, документация API или документация XML, где исключения иногда перечисляются.
Есть ли какие-либо дополнения для VS, который показывает, какие исключения какой-либо данный вызов мог бы выдать? Учитывая питание отражения, разве не должно быть возможно просмотреть вызов и просмотреть все ответвления возможных выполнений через вызов и проверки на какие-либо выданные исключения.NET?
Единственный известный мне инструмент - это (коммерческий) Exception Hunter из программы Red-Gate .
Однако на самом деле это не так детерминировано, как вы могли подумать вначале. В зависимости от используемых версий дополнительных сборок генерируемые исключения могут изменяться после времени сборки, если используется более новая версия, которая вызывает другие исключения, чем ожидалось во время сборки.
В Java у вас есть «особое» исключение RuntimeException, которое не нужно объявлять в сигнатуре метода (включая все исключения, происходящие от него). Существуют веские причины, по которым разработчики языка решили не реализовывать проверенные исключения в C # (вопрос о том, перевешивают ли они преимущества или нет). Некоторые разработчики Java просто заключают исключения в исключения времени выполнения или забывают использовать исключения «причины», что приводит к потере информации.
Есть хорошее интервью с Андерсом Хейлсбергом о проверенных исключениях и некоторых рассуждениях о том, почему в C # их нет - спасибо adrianbanks за ссылку.
Единственное, что я обнаружил, это Exception Hunter , но это коммерческий инструмент, который вам придется купить.