2010-10-19 5 views
5

Программирование Java в Eclipse, я привык иметь дело с исключениями. В C# с VisualStudio кажется, что я не могу сказать «исключение исключений» в методе ... После большого количества кодировок я обнаружил множество исключений и должен был поймать их, когда нашел их во время тестирования. Я хотел бы быть вынужденным обращаться с ними, так что VisualStudio может сказать, что здесь вам нужен улов, или я не собираюсь вас отпускать :) Возможно ли это?Отсутствие обработки обработки исключений?

Thanks

ответ

8

Номер C# не заставляет вас обрабатывать исключения. Это было убедительное дизайнерское решение со стороны разработчиков языка.

Подробнее о том, почему, см. The Trouble With Checked Exceptions, где Андерс Хейлсберг обсуждает, почему они не являются частью C#.

+0

Ну ладно, очень плохо :) Спасибо за ответ! – Johannes

+0

Который, хотя и предположительно подвержен ошибкам, дает программисту свободу заявить «Я знаю, что я делаю» –

+0

@Johannes: Прежде чем вы подумаете об этом как о «плохом», я прочитал это интервью. Раньше я думал, что это был недостаток в C#, но я полностью переделал это, увидев это как «про» ... –

0

Нет, это невозможно.

Что вы можете сделать, это найти библиотечный метод .NET, который вы выполняете в MSDN: там задокументированы исключения, которые должны быть выбраны методом. Впоследствии вы можете решить, какие из них вы хотите поймать и какие из них вы не хотите обрабатывать здесь.

+0

Не лучше, чем посмотреть их все в документации? Должна быть какая-то возможность сделать это в VisualStudio, если вы спросите меня :) Какой-то тип «щелчка правой кнопкой мыши -> исключения, которые могут быть явными, могут быть выброшены» :) – Johannes

+0

@Johannes: Правда, это было бы хорошо, чувствительная справка в Visual Studio неплохая (просто нажмите F1, указав курсор на имя метода), поиск документации идет довольно быстро. – Heinzi

0

Вы можете использовать various tools, чтобы найти исключения. Это также относится к .NET 4, называемому «Кодовые контракты», которые помогают обеспечить соблюдение условий предварительного и постположения, а возможно избегать некоторых исключений.

2

Нет контрольных исключений на C#. И причины довольно просты:

1) они, как правило, не для достижения там намеченная цель, потому что не каждый следует рекомендуемую практику либо обращаться с ними явно или передавая их по цепочке. Вместо этого происходит то, что они «съедаются» разработчиками в середине стека dev.
2), так как они, естественно, часть документации, а не исполняемый код, они должны идти в документации и не загромождать поверхность кода

3) C#/Framework документации в Дев инструментов являются идеальным местом для таких документация. Играйте с визуальным Studio Object Browser, перейдите к методу, и вы увидите их в нижней панели.