Вы можете создать метод SkipOnError следующим образом:
private SkipOnError(Action action)
{
try
{
action();
}
catch
{
}
}
Тогда вы могли бы назвать это так:
try
{
SkipOnError(() => /*line1*/);
line2;
line3;
} catch {}
Редактировать: Это должно упростить пропуск данного исключения:
private SkipOnError(Action action, Type exceptionToSkip)
{
try
{
action();
}
catch (Exception e)
{
if (e.GetType() != exceptionToSkip) throw;
}
}
ПРИМЕЧАНИЕ: На самом деле я не предлагаю вам делать это - по крайней мере, не на регулярной основе, так как я нахожу это довольно глупым. Но это как бы демонстрирует некоторые функциональные возможности, которые мы можем теперь делать в C #, ууу!
Что бы я на самом деле сделал, так это: Рефакторинг line1
в метод ( Извлечение метода ). Этот новый метод должен обрабатывать любые предсказуемые исключения (если они могут быть обработаны) и, таким образом, оставлять вызывающего в известном состоянии. Потому что иногда вы действительно хотите сделать line1
, за исключением, может быть, ничего страшного, если произойдет ошибка ...