Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 22.06.2020 в Комментарии блога

  1. 1 балл
    Этот пост, я ещё раз повторюсь, не столько про интернет-карточку, сколько про обработку ошибок. Даже assert поставить — это уже обработка ошибок. local handle = assert(request(url, nil, nil, 5)) В коде из цитаты обработки ошибок нет. Ошибка если и есть, то теряется. Такой код проблему не решает и ещё порождает новые. Поэтому код неправильный. Меня огорчает, что код скопирован, а времени то, чтобы понять, как он работает, не потрачено совершенно. Внутри функции request находится цикл. Этот цикл ждёт соединения с сервером. timeout ограничивает время пребывания в этом цикле. Сколько ставить — это не мне решать, поэтому именно он и параметром к функции выведен. Зависит от программы. Сетевые приложения никогда не были простыми. Исключительных случаев огромное множество, и за всеми надо уследить. В посте я постарался объяснить, зачем я использую свою обёртку и что именно она делает. Я не могу дать полностью готовый кусок кода и сказать, что это канон. Самое универсальное — это функция request. Как использовать, зависит от приложения. Здесь я нарисовал с assert пример — при любой ошибке программа будет крашиться. Удобно при разработке. Если есть консольный интерфейс, надо ошибку обрабатывать явно. Например: local handle, err for i = 0, math.huge, 1 do handle, err = request(url, nil, nil, 5) if handle then break end local delay = math.min(180, i ^ 3) io.stderr:write([[ We've had a problem fetching a webpage: %s. Retrying in %d seconds...]]):format(err, delay)) os.sleep(delay) end В посте как раз консольная программка, к слову. Если интерфейс графический, ошибку писать надо куда-то ещё. Если программка автономная, то ошибку куда-то в лог класть.
  2. 1 балл
    @Clay_gem к сожалению нельзя, так как на экране отображаются псевдопиксели. Он больше предназначен для вывода текста нежели изображений. Если прям надо квадратную точку то крась 2 символа. Хотя можно еще использовать верхний или нижний квадрат, как бы разделяя 1 символ пополам
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...