Телеграм чат начинающих программистов. Общаемся и помогаем друг другу
Если ссылка не открывается, можно найти нас в поиске по чатам @rubyrush
или
пойти другим путем
Добавьте в программу Виселица обработку исключений при открытии файла со списком слов и при загрузке картинок-виселиц.
При ошибке открытия списка слов завершите программу. Если не хватает файлов–картинок, используйте вместо незагрузившихся картинок какую-нибудь строку.
При открытии файла для чтения единственная легко воспроизводимая ошибка это отсутствие файла. Погуглите какой тип исключения нужно ловить в этом случае. Переименуйте нужные файлы и проверьте, что ваша программа правильно работает.
Ошибки при открытии файла, если вы предварительно проверили его существование с помощью File.exist?
— маловероятны. Поэтому, чтобы убедиться, что ваша обработка ошибок работает, сперва удалите такую проверку. Она нам будет не нужна.
Затем поместите открытие файла в блок begin ... rescue ... end
и поймайте ошибку SystemCallError
(подробнее см. доки).
Обратите внимание, что мы ловим SystemCallError
чтобы обработать все возможные ошибки связанные с открытием файла. Не только отсутствие файла, но и всевозможные системные ошибки доступа к нему.
Этим мы с одной стороны расширяем группу отлавливаемых ошибок (что не очень хорошо), с другой — остаемся в рамках определенной группы (вызовы ОС), что уместно поскольку единственный вызов, который делаем — чтение файла.
http://stackoverflow.com/questions/11457795/how-to-rescue-all-exceptions-under-a-certain-namespace
Скачайте наши исходники и посмотрите, как мы открываем файлы в классах word_reader.rb и result_printer.rb.
Для работы программы нужно также установить библиотеку unicode_utils:
gem install unicode_utils