Настройка предупреждений в Visual Basic
В компиляторе Visual Basic предусмотрен набор предупреждений о коде, который может вызвать ошибки времени выполнения.Пользуясь этой информацией, можно писать более элегантный, производительный и качественный код с меньшим количеством ошибок.Например, компилятор выведет предупреждение при попытке пользователя обратиться к элементу объектной переменной, которой не присвоено значения, произвести возврат из функции без установки возвращаемого значения, или выполнить блок Try с ошибками в логике перехвата исключений.
Иногда компилятор предоставляет дополнительную логику, позволяющую пользователю сосредоточиться на прикладных задачах, а не думать о предотвращении возможных ошибок.В предыдущих версиях Visual Basic для ограничения дополнительной логики, предоставляемой компилятором Visual Basic, использовался параметр Option Strict.Настройка предупреждений позволяет ограничить эту логику более детальным способом, на уровне отдельных предупреждений.
У вас может возникнуть необходимость настроить проект и отключить некоторые предупреждения, не относящиеся к приложению, а другие предупреждения трактовать как ошибки.На этой странице показано, как включать и отключать отдельные предупреждения.
Включение и отключение предупреждений
Существует два различных способа настройки предупреждений: с помощью Конструктора проектов и с помощью параметров компилятора /warnaserror и /nowarn.
Вкладка Компиляция страницы Конструктор проекта позволяет включать и отключать предупреждения.Чтобы отключить все предупреждения, установите флажок Отключить все предупреждения. Чтобы все предупреждения обрабатывались как ошибки, установите флажок Обрабатывать все предупреждения как ошибки.Для отдельных предупреждений в отображаемой таблице можно по необходимости переключать режим обработки в качестве ошибок или предупреждений.
Когда параметр Option Strict установлен равным Off, связанные с Option Strict предупреждения не могут рассматриваться независимо друг от друга.Когда параметр Option Strict установлен равным On, связанные с ним предупреждения рассматриваются как ошибки, независимо от их статуса.Когда параметр Option Strict установлен равным Custom путем указания аргумента /optionstrict:custom в командной строке компилятора, предупреждения Option Strict могут включаться и отключаться независимо друг от друга.
Задать обработку предупреждений как ошибок можно также с помощью параметра командной строки компилятора /warnaserror.В этом параметре можно указать разделенный запятыми список предупреждений, которые должны рассматриваться как ошибки или предупреждения, используя знаки + или - соответственно.Возможные параметры перечислены в следующей таблице.
Параметр командной строки |
Что определяет |
---|---|
/warnaserror+ |
Обрабатывать все предупреждения как ошибки |
/warnsaserror- |
Не рассматривать предупреждения как ошибки.Это значение по умолчанию. |
/warnaserror+:<warning list> |
Обрабатывать как ошибки предупреждения, идентификаторы которых перечислены в разделенном запятыми списке. |
/warnaserror-:<warning list> |
Не обрабатывать как ошибки предупреждения, идентификаторы которых перечислены в разделенном запятыми списке. |
/nowarn |
Не выводить отчет о предупреждениях. |
/nowarn:<warning list> |
Не выводить отчет о предупреждениях, идентификаторы которых перечислены в разделенном запятыми списке. |
Список предупреждений содержит идентификаторы предупреждений, которые должны рассматриваться как ошибки; этот список может указываться в параметрах командной строки для включения и отключения определенных предупреждений.Если список предупреждений содержит недопустимое число, возвращается ошибка.
Примеры
В данной таблице примеров аргументов командной строки описывается назначение каждого аргумента.
Аргумент |
Описание |
---|---|
vbc /warnaserror |
Указывает, что все предупреждения должны рассматриваться как ошибки. |
vbc /warnaserror:42024 |
Указывает, что предупреждение 42024 должно рассматриваться как ошибка. |
vbc /warnaserror:42024,42025 |
Указывает, что предупреждения 42024 и 42025 должны рассматриваться как ошибки. |
vbc /nowarn |
Указывает, что выводить отчет о предупреждениях не следует. |
vbc /nowarn:42024 |
Указывает, что предупреждение 42024 не должно выводиться. |
vbc /nowarn:42024,42025 |
Указывает, что предупреждения 42024 и 42025 не должны выводиться. |
Типы предупреждений
Ниже приведен список предупреждений, которые иногда имеет смысл рассматривать как ошибки.
Предупреждение о неявном преобразовании
Генерируется для случаев неявного преобразования.Сюда не входят неявные преобразования из встроенных числовых типов в строковые типы при использовании оператора &.По умолчанию выключено для новых проектов.
Идентификатор: 42016
Предупреждение о вызове метода позднего связывания и разрешении перегрузки
Генерируется для случаев позднего связывания.По умолчанию выключено для новых проектов.
Идентификатор: 42017
Предупреждения об операндах типа Object
Генерируются при обнаружении операндов типа Object, которые могут привести к ошибке, если установлен параметр компилятора Option Strict On.По умолчанию включены для новых проектов.
Идентификаторы: 42018 и 42019
Предупреждения о необходимости использовать предложение "As" в объявлениях
Генерируются, когда в объявлении переменной, функции или свойства отсутствует предложение As, что приводит к ошибке, если установлен параметр компилятора Option Strict On.Предполагается, что переменные, тип которых не задан явно, по умолчанию имеют тип Object.По умолчанию включены для новых проектов.
Идентификаторы: 42020 (объявление переменной), 42021 (объявление функции) и 42022 (объявление свойства).
Предупреждения о возможных исключениях при пустых ссылках
Генерируется, когда переменная используется до того, как ей было присвоено значение.По умолчанию включены для новых проектов.
Идентификаторы: 42104, 42030
Предупреждение о неиспользуемой локальной переменной
Генерируется, когда локальная переменная объявлена, но на нее нет ссылок.По умолчанию включено.
Идентификатор: 42024
Предупреждение о доступе к общему члену через экземпляр переменной
Генерируется, когда доступ к общему члену через экземпляр может иметь побочные эффекты, или когда доступ к общему члену через переменную экземпляра производится не в правой части выражения или передается как параметр.По умолчанию включены для новых проектов.
Идентификатор: 42025
Предупреждения о рекурсивном операторе или доступе к свойству
Генерируются, когда в теле подпрограммы используется тот же оператор или свойство, в котором она определена.По умолчанию включены для новых проектов.
Идентификаторы: 42004 (оператор), 42026 (свойство)
Предупреждение о функции или операторе без возвращаемого значения
Генерируется, когда для функции или оператора не задано возвращаемое значение.Сюда входит пропуск оператора Set с неявной локальной переменной, имеющей то же имя, что и функция.По умолчанию включены для новых проектов.
Идентификаторы: 42105 (функция), 42016 (оператор)
Предупреждение об использовании в модуле модификаторов перегрузки
Генерируется, когда в модуле (Module) используется Overloads.По умолчанию включены для новых проектов.
Идентификатор: 42028
Предупреждения о повторяющихся или перекрывающихся блоках Catch
Генерируются, когда блок Catch никогда не достигается из-за его отношений с другими определенными блоками Catch.По умолчанию включены для новых проектов.
Идентификаторы: 42029, 42031
См. также
Ссылки
Диалоговое окно "Помощник по исключениям"
Оператор Try... Catch... Finally (Visual Basic)
Страница "Компиляция" в конструкторе проектов (Visual Basic)
Предупреждения компилятора, которые по умолчанию