В общем, должен ли мой компилятор обрабатывать предупреждения как ошибки? - PullRequest
4 голосов
/ 05 апреля 2011

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

Ответы [ 5 ]

4 голосов
/ 05 апреля 2011

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

2 голосов
/ 05 апреля 2011

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

Чем дольше я думаю об этом, тем меньше остается "предупреждений, с которыми я мог бы сойти".

1 голос
/ 28 августа 2011

В общем , да.

Я уверен, что есть много исключений.Сторонние заголовки библиотек, которые не будут компилироваться таким образом, но которые вы не хотите трогать, являются самыми большими, о которых я могу думать.(Даже тогда я иногда использовал #pragmas вокруг строки #include для подавления предупреждений в определенных заголовках, поэтому я могу сохранить предупреждения как ошибки в остальной части кода.)

Другое исключение небольшоепроекты;для меня простое практическое правило: если мне нужен Makefile, то это уже не маленький проект, и я хочу получить анал о предупреждениях, документации и модульных тестах.

1 голос
/ 05 апреля 2011

Я обычно исправляю все предупреждения, но не устанавливаю их как ошибки ...

0 голосов
/ 30 августа 2013

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

Когда у вас есть длинная цепочка методов, в которых что-то может появиться null:

var amount = _client.SnatchLeftoverOrders( _username, _password, "pepperoni").Where( o => o.Ingredients.Any("mushrooms").Where( o => o.Ownersname.ToUpper == _incomingName ).Amount();

Или что-то подобноемножество мест, где могут возникать нулевые исключения.

Код гораздо проще, когда вы помещаете эти строки в try / catch, чем добавление FirstOrDefaults () и затем переходите к! null.

Еслиу вас есть подвох, вы должны что-то сделать с объектом Exception, или это ошибка (если вы обрабатываете предупреждения как ошибки.

Это не способ выиграть медаль за "отточенное программирование", ноэто делает вещи простыми. В наши дни в программировании происходит слишком много няней.

...