Каковы эти 1 055 Ошибок Delphi, и действительно ли это Важно?

Я написал статью об этом некоторое время назад, потому что было много людей, спрашивающих об этом в то время. Можно найти его и тестовый код в http://www.blackwasp.co.uk/SpeedTestTryCatch.aspx .

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

ключевая проблема производительности с блоками попытки/выгоды - при фактической ловле исключения. Это может добавить значимую задержку с Вашим приложением. Конечно, когда вещи идут не так, как надо, большинство разработчиков (и много пользователей) распознает паузу как исключение, которое собирается произойти! Ключ здесь не должен использовать обработку исключений для нормального функционирования. Как следует из названия они являются исключительными, и необходимо сделать все, что Вы можете для предотвращения их бросаемый. Вы не должны использовать их в качестве части ожидаемого потока программы, которая функционирует правильно.

5
задан lkessler 12 November 2009 в 00:48
поделиться

2 ответа

Он добавляет некоторые данные в исполняемый файл и несколько увеличивает его размер. В очень редких случаях это может быть риск обратной инженерии, поскольку он позволяет третьим сторонам (например, взломщикам) видеть, что класс поддерживает методы, упомянутые в опубликованном разделе.

Вы можете спокойно игнорировать его или заменить опубликовала директиву с public , чтобы она исчезла.

7
ответ дан 18 December 2019 в 09:08
поделиться

Ответ Барри касается сути этой конкретной проблемы, но обратите внимание, что W1055 не является «ошибкой», это ПРЕДУПРЕЖДЕНИЕ (обозначенное буквой W).

Следующие префиксы являются используется в выводе компилятора:

  • Hnnnn - подсказки
  • Wnnnn - предупреждения
  • Ennnn - ошибки
  • Lnnnn - ошибки компоновщика
  • Unnnn - неожиданные (?) внутренние ошибки

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

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

U-ошибки - это плохие парни - вы получаете их ОЧЕНЬ редко, и они указывают на то, что что-то пошло не так или неожиданно в самом компиляторе.

Как сказал Барри - в вашем случае вы можете игнорировать 1055, поскольку это предупреждение который просто информирует вас о последствиях использования слова «опубликовано» в том виде, в каком оно было найдено в вашем коде. Как правило, рекомендуется иметь политику «нулевых предупреждений» (или подсказок), поскольку тогда вы можете использовать наличие подсказки ИЛИ предупреждения в вашей компиляции как «красный флаг», который указывает на потенциальную ошибку в вашем коде. (компилятор интерпретирует что-то таким образом, который вы, возможно, не намеревались. например, в этом случае вы НЕ ПРЕДНАЗНАЧАЛИ, чтобы опубликовать метод и внедрить RTTI в ваш класс).

Как сказал Барри - в вашем случае вы можете игнорировать 1055, так как это предупреждение, которое просто информирует вас о последствиях использования слова «опубликовано» таким образом, как оно было найдено в вашем коде. Как правило, рекомендуется иметь политику «нулевых предупреждений» (или подсказок), поскольку тогда вы можете использовать наличие подсказки ИЛИ предупреждения в вашей компиляции как «красный флаг», который указывает на потенциальную ошибку в вашем коде. (компилятор интерпретирует что-то таким образом, который вы, возможно, не намеревались. например, в этом случае вы НЕ ПРЕДНАЗНАЧАЛИ, чтобы опубликовать метод и внедрить RTTI в ваш класс).

Как сказал Барри - в вашем случае вы можете игнорировать 1055, так как это предупреждение, которое просто информирует вас о последствиях использования слова «опубликовано» таким образом, как оно было найдено в вашем коде. Как правило, рекомендуется иметь политику «нулевых предупреждений» (или подсказок), поскольку тогда вы можете использовать наличие подсказки ИЛИ предупреждения в вашей компиляции как «красный флаг», который указывает на потенциальную ошибку в вашем коде. (компилятор интерпретирует что-то таким образом, который вы, возможно, не намеревались. например, в этом случае вы НЕ ЗНАЛИ опубликовать метод и внедрить RTTI в ваш класс).

11
ответ дан 18 December 2019 в 09:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: