Как определить, когда функция openURI в Ruby выдает ошибку 404 страницы не найдена?
Я хочу получить содержимое веб-страницы следующим образом:
open("http://www.ruby-lang.org/")
Однако иногда эта страница не существует:
open("http://www.ruby-lang.org/blabla.html")
open
Команда выдает исключение. Я знаю, что могу поймать это исключение, но в моем случае оно кажется неуместным. Я знаю, что регулярно будут плохие URL, потому что посетители и пользователи вводят URL для получения.
Мне не нравится идея использовать исключения для этой обычной ситуации. Есть ли способ узнать, что страница не была найдена без исключения?
1 ответ
Вы используете упрощенный метод для чтения файла (open-uri
), поэтому вы получаете упрощенный результат для ошибок. Это просто не надежный способ сделать что-то, кроме простого успеха / неудачи.
Проверьте используя Net::HTTP
(в частности, request
метод) или Mechanize
или много других доступных API для таких задач.