2013-01-17 3 views
4

Можно создать дубликат:
Ignore Exception in C#C# Лучший способ игнорировать Exception

Иногда в редких случаях вы действительно хотите, чтобы просто игнорировать исключение. Каков наилучший способ сделать это? мой подход - это исключение, но ничего не делайте. другие?

     try 
         { 
          blah 
         } 
         catch (Exception e) 
         { 
          <nothing here> 
         } 
+3

Будем надеяться, что вы просто хотите, чтобы игнорировать один или несколько конкретных исключений. Игнорирование всех исключений на самом деле не очень хорошая идея. –

+0

Не исключение. Просто тип конкретного исключения, которое вы хотите игнорировать. –

+1

Я согласен с @BrianRasmussen. И когда вы игнорируете исключение, добавьте комментарий, объясняющий, ПОЧЕМУ вы игнорируете его. –

ответ

13

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

try 
{ 
    // code 
} 
catch 
{ } 

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

try 
{ 
    // code 
} 
catch (SpecificException) 
{ } 

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

+0

Как опытный разработчик, я обнаружил, что это требует неприятностей. Вы можете получить исключения, которые не происходят все время и не воспроизводятся, потому что где-то вдоль линии исключение IGNORED.Я думаю, что если вы не собираетесь специально обрабатывать исключение, тогда вы не должны его поймать. Вызывающий метод может поймать исключение и решить, что делать. Исключения передаются по стеку. Вы можете повторно удалить исключение и добавить некоторые комментарии, такие как «Не удалось отправить по сети, +» ex.message .. и вызывающая функция может поймать это –

+0

. Есть несколько ситуаций, когда вы будете есть (игнорировать) исключение. Например, вы не хотите, чтобы ваша система ведения журнала выбрала исключения, которые не позволяют функциям вашего бизнеса работать. В принципе, вы не хотите, чтобы ваша основная задача терпит неудачу только потому, что может возникнуть проблема в необязательном необязательном коде. – NoOneSpecial

3
try 
{ 
    DoBlah(); 
} 
catch { } 
+2

Я добавлю - поставьте комментарий в этом пустом блоке 'catch', чтобы объяснить * почему * вы игнорируете исключение. –

+0

Это обескураживает практика MS. –

+1

@ Zarathos - Вопрос не в «лучших практиках», а о проглатывании исключений. – Lee

3

Это может быть что-то вроде этого

try 
{ 
    //blah 
} 
catch{} 

Если вы хотите игнорировать конкретное исключение

try 
{ 
    //blah 
}catch(YourException){} 
+1

Это не будет игнорировать исключение. В этот момент он игнорирует все исключения. –

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