zHz00 Untitled

четверг, 09 мая 2019
23:59 Нет ничего интереснее, чем пробовать новое
В серьёзных проектах со сжатыми сроками надо стараться использовать методы, которые принесут поменьше сюрпризов. То есть, методы хорошо знакомые и проверенные. Но это не всегда получается. А иногда можно было бы воспользоваться известным методом, но что-то зачесалось и потянуло на эксперименты. Не надо так.

Задача была простая -- в начале выполнения программы удалить файл. Как это сделать? Можно было бы сделать system("del file.txt"). А можно было бы воспользоваться простой советской функцией Win32 API -- DeleteFile. Но я вспомнил, что буквально на днях видел класс CFile. И там была статическая функция, которая удаляет файл.

Ничтоже сумняшеся я написал CFile::Remove("file.txt") и успокоился. Первый раз сработала, второй раз сработала. А на третий я сделал перезапуск особым образом -- и произошла ситуация, при которой файла уже не было. Что же сделала эта функция, не обнаружив удаляющегося файла? Подсказка: функция оказалась типа void.

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

У меня программа должна всё автоматически делать, а тут она повисла и ждёт, пока кто-нибудь закроет окно. А... как вообще предполагалось, что программа узнает, что удалить файл не удалось? Для каких же целей подойдёт эта функция? И для каких целей её делали разработчики?

В общем, не рекомендую.

@темы: Программы, Борьба с техникой

URL

10.05.2019 в 12:01

10.05.2019 в 12:01
Судя по документации, функция кидает exception в случае неудачи. Кто-то сделал глобальный обработчик для дебага и забыл сказать/удалить/и т.д.?
URL

10.05.2019 в 12:03

10.05.2019 в 12:03
Открыл первую попавшуюся доку: «Если удалить файл невозможно, например, из-за неправильно указанного имени файла, то метод вызывает исключение.» А какое именно исключение - не написано, что характерно))

А вообще очень странное поведение, да. Ещё можно в модальном окне спросить у пользователя какой другой файл он хочет удалить, раз этого не нашлось, не давая возможности отказаться. :laugh:
URL

10.05.2019 в 23:00

10.05.2019 в 23:00
roadischosen, LizardOfOzz, а, так вот оно в чём дело, Михалыч! Спасибо. Вот к чему приводит невнимательное чтение документации.
URL
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail