C #: Есть ли в Visual Studio 2008 инструмент, показывающий, какие исключения могут быть вызваны куском кода? - PullRequest
26 голосов
/ 11 февраля 2010

Например, если я открываю файл, я знаю, что может возникнуть исключение FileNotFoundException, или, если я преобразую строку в двойное, может возникнуть исключение FormatException. Очевидно, что если метод делает и то и другое, оба могут быть вызваны.

Есть ли способ быстро увидеть все возможные исключения, созданные методом? Отслеживание этого само по себе кажется склонным к ошибкам.

Ответы [ 5 ]

10 голосов
/ 11 февраля 2010

Это не встроено в VS. Тем не менее, существуют сторонние инструменты, такие как Redgate's Искатель исключений.

Редактировать Я не работаю в RG, но я фанат их продуктов. Я попробовал именно этот, но в итоге мы его не купили.

1 голос
/ 09 июня 2011

Агент Джонсон Пклагин к ReSharper

1 голос
/ 11 февраля 2010

Если память мне не изменяет, если подсказка intellisense должна содержать список исключений, которые может выдать метод. Вы также можете открыть вкладку браузера в Visual Studio, указывая на MSDN следующим образом: http://msdn.microsoft.com/en-us/library/b9skfh7s.aspx#ddueExceptionsToggle

0 голосов
/ 11 февраля 2010

Нет конкретного способа найти все исключения как фрагмент кода, если у вас нет способа запустить каждую возможную ветку в любом фрагменте кода, который вы выполняете. Хотя инструменты могут быть в состоянии оценить возможные ошибки, вы все равно столкнетесь с ситуациями, которые эти инструменты не поймут. Хотя я не говорю, что нет никаких причин для их запуска, вам все равно придется кодировать, но это такой способ обработки ошибок, которые ваш инструмент может не уловить. Я видел такие инструменты, которые используются вместо хороших методов тестирования и кодирования.

Также иногда исключения - это хорошие вещи. Некоторые из самых серьезных и значительных ошибок воздействия, которые я когда-либо обнаруживал, связаны с тем, что разработчики обрабатывают ошибки таким образом, что программа продолжает работу, но больше не находится в состоянии, которого ожидает любое будущее, называемое кодом. только мой .02

0 голосов
/ 11 февраля 2010

Я думаю, что Resharper делает это, если моя память работает правильно. Взгляните на Pex , вас это тоже может заинтересовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...