2013-12-10 2 views
0

Я просматривал какой-то производственный код, и кажется, что есть много Try/Catches, с некоторой логикой в ​​Try, но пустой Catch.C# Try/Catch best practices

Это обычная практика?

Не могли бы вы просто использовать инструкцию If?

Кажется странным использовать Try/Catch, если вы не собираетесь что-либо поймать.

+4

* bad * - вам следует правильно обработать причины возникновения исключения. –

+2

Пустые уловы - плохая практика. – Steven

+0

Связанный: http://stackoverflow.com/questions/9892137/windsor-pulling-transient-objects-from-the-container – Steven

ответ

-2

Я нашел ответ здесь:

Try-catch: is this acceptable practice?

Это действительно плохая практика.

+0

Когда вы имеете дело с сторонними API, которые бросают пустые исключения без видимой причины, но в конечном итоге завершают запрос ... пустой улов - единственный способ борьбы с ужасом, который в противном случае мог бы возникнуть. Однако в каждом другом случае они хуже, чем ужасные. – Alex

3

неоднородная утверждение, что делает ничего не является, к сожалению, общее плохое практика программирования:

try 
{ 
    DoSomething(); 
} 
catch (Exception e) 
{ 
    //empty 
} 

Он насмешливо называли Pokémon Exception Handling (#2), потому что «вы просто Готта поймать«Em All».

+1

+1 Для отличной ссылки! – gleng

0

Вы частично правы.

Если нет, это не замена для попытки. Если ваш код генерирует исключение (добровольно или неохотно), и вы хотите, чтобы либо код продолжал обрабатывать, либо просто отбрасывал другое исключение вверх для вызывающего абонента, попытка catch - это путь. Я не вижу Ваш код, чтобы оценить правильность реализации try catch. Может быть полезно показать это.

0

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

Когда он ушел, а другие начали пересматривать свои коды, началась история ужасов.

Он использовал попытку и пустую уловку для каждой логики в своем коде.

Команда разработчиков должна была переписать всю свою базу кода.

+1

Вы скопировали это с [прошлой недели] (http://thedailywtf.com/Articles/Exceptionally-Hard-to-Swallow.aspx) TheDailyWTF? –