2009-12-11 2 views
0

Должен ли я часто использовать блоки try catch и как определить, когда и где они мне больше всего нужны? Также, что следует делать с исключением, когда он попадает в обычную практику в деловые приложения малого и среднего бизнеса? Также есть бесплатный инструмент, который поможет мне найти дублирующий код или код, который идеально подходит для рефакторинга пищевой цепи? У меня есть ReSharper, и это здорово, но мне нужно что-то, чтобы помочь мне проанализировать, что нужно реорганизовать.Мне нужно попробовать использовать Catch, использование исключений и рефакторинг

Спасибо.

+0

Я предлагаю потратить некоторое время на ознакомление с рекомендациями по лучшей практике в MSDN: рекомендации по дизайну для исключений http://msdn.microsoft.com/en-us/library/ms229014.aspx Это не вопрос частоты, но используя их в содержательной и последовательной форме. –

ответ

7

. Блоки try..catch следует использовать только в том случае, если вы можете исправить ошибку, улавливать, чтобы выполнить очистку перед повторным переворачиванием (т. Е. Откат базы данных) или в уловке верхнего уровня, чтобы регистрировать исключение перед сбоем.

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

0

Ну, есть 3 правила, которые я всегда использовать в качестве лучшей практики при обработке исключений:

  • поймать исключение как можно ближе к коду, который проливает за исключением
  • только поймать исключение, когда вам действительно может справиться с этим. Это связано только с улавливанием действительно определенных типов исключений. НИКОГДА не поймайте исключение, которое вы не можете обработать в нормальном коде, потому что это вам не поможет.
  • Имейте глобальный обработчик исключений, чтобы поймать все исключения, с которыми я не мог справиться, используемый для регистрации исключения и закрытия приложения.
2

Я только воспользуюсь случаем, когда могу сделать что-то значимое с ними. Пусть общие исключения пузырятся до уровня приложения и обрабатывают его там. Таким образом, вы можете иметь всю свою обработку ошибок в одном месте для ведения журнала и т. Д.

0

Вы должны поместить try ... catch блоки вокруг кода, где вы определили исключительное поведение, которое может произойти, и что вы знаете, как обращаться. Поскольку вы определили поведение, они должны быть нацелены на конкретные исключения. Они никогда не должны использоваться для подавления ошибок.

Включение блока try..catch на высоком уровне полезно, если вы хотите регистрировать исключения. Log 4 .Net - хороший инструмент для этого. В компании среднего размера вы можете отправить электронное сообщение кому-либо в случае возникновения исключения или сохранить его в базе данных.

1

try-catch можно использовать только в том случае, если вы собираетесь сделать что-то полезное с помощью улова. Если все, что вы собираетесь делать, это освободить ресурсы, вы можете использовать try-finally (да ... без улова). Обработка исключений по умолчанию - это бросить его. Так что, может быть, вы захотите его зарегистрировать, а затем выбросить.

Ваш код должен выглядеть

try{ 
... //do something 
} 
catch(Exception e){ 
//log first 
throw 
} 
finally{ 
//free up resources. 
} 

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

Смежные вопросы