Решарпер и пункт C # Catch - PullRequest
2 голосов
/ 20 марта 2009

Я новичок в Resharper и пытаюсь понять, почему он предлагает:
catch (Exception) { }
for
catch { }

и

catch { }
for
catch (Exception) { }

Я сбит с толку.

Ответы [ 5 ]

9 голосов
/ 20 марта 2009

По сути, он предлагает вам способ переключения между двумя альтернативами, а не конкретную рекомендацию, которая лучше.

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

4 голосов
/ 20 марта 2009

У Resharper есть еще одно сообщение, которое является скорее рекомендацией: он советует вам не ловить класс Exception.

2 голосов
/ 23 марта 2011

catch { } <- подавляет все ошибки. мы должны делать, только если мы уверены, что откажемся от любой ошибки. </p>

catch { throw; } <- это не обязательно. Компилятор уже позаботился о том, чтобы сбросить ошибку при вызове функции. Не требуется добавлять явно. </p>

1 голос
/ 20 марта 2009

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

0 голосов
/ 20 марта 2009

Потому что иногда, убирая блоки catch, вы переходите к / от catch(Exception ex) до catch(Exception) к catch и наоборот, в зависимости от того, пытаетесь ли вы просто фильтровать, регистрировать / переносить или глотать исключение. (См. Я, запрашивающий ту же функцию для CodeRush, даже не подозревая, что она существует даже в R # )

IIRC также может быть разница между ними с точки зрения кода, который они генерируют / вещей, которые они фильтруют и пропускают

РЕДАКТИРОВАТЬ: ссылка была ранее помечена "Пустой улов плох", следовательно, очень правильные отрицательные голоса!

...