|
1 / 1 / 3
Регистрация: 26.05.2015
Сообщений: 98
|
||||||
Try Exept, как правильно обработать некоторые исключения?20.11.2017, 15:52. Показов 10555. Ответов 23
Метки нет (Все метки)
Всем здрасте. Есть фунция, которая отсылает в телеграм картинку и ждет пока я пришлю в ответ текст с нее. Я поместил функцию в блок try, а блок except сделал на все исключения:
0
|
||||||
| 20.11.2017, 15:52 | |
|
Ответы с готовыми решениями:
23
Почему некоторые исключения невозможно обработать стандартным образом при помощи try catch?
Как правильнее обработать исключения? |
|
1 / 1 / 3
Регистрация: 26.05.2015
Сообщений: 98
|
||||||||
| 23.11.2017, 14:14 [ТС] | ||||||||
|
Кликните здесь для просмотра всего текста
реузльтат: Кликните здесь для просмотра всего текста
СРАБОТАЛО!!!!
2017-11-23 16:07:54,165 (util.py:64 PollingThread) ERROR - TeleBot: "ConnectionError occurred, args=(ProtocolError('Connection aborted.', ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)),) Traceback (most recent call last): File "C:\Python34\lib\site-packages\requests\packages\urllib3\conne ctionpool.py", line 372, in _make_request httplib_response = conn.getresponse(buffering=True) TypeError: getresponse() got an unexpected keyword argument 'buffering' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Python34\lib\site-packages\requests\packages\urllib3\conne ctionpool.py", line 544, in urlopen body=body, headers=headers) File "C:\Python34\lib\site-packages\requests\packages\urllib3\conne ctionpool.py", line 374, in _make_request httplib_response = conn.getresponse() File "C:\Python34\lib\http\client.py", line 1227, in getresponse response.begin() File "C:\Python34\lib\http\client.py", line 386, in begin version, status, reason = self._read_status() File "C:\Python34\lib\http\client.py", line 348, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "C:\Python34\lib\socket.py", line 378, in readinto return self._sock.recv_into(b) File "C:\Python34\lib\ssl.py", line 748, in recv_into return self.read(nbytes, buffer) File "C:\Python34\lib\ssl.py", line 620, in read v = self._sslobj.read(len, buffer) ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Python34\lib\site-packages\requests\adapters.py", line 370, in send timeout=timeout File "C:\Python34\lib\site-packages\requests\packages\urllib3\conne ctionpool.py", line 597, in urlopen _stacktrace=sys.exc_info()[2]) File "C:\Python34\lib\site-packages\requests\packages\urllib3\util\ retry.py", line 245, in increment raise six.reraise(type(error), error, _stacktrace) File "C:\Python34\lib\site-packages\requests\packages\urllib3\packa ges\six.py", line 309, in reraise raise value.with_traceback(tb) File "C:\Python34\lib\site-packages\requests\packages\urllib3\conne ctionpool.py", line 544, in urlopen body=body, headers=headers) File "C:\Python34\lib\site-packages\requests\packages\urllib3\conne ctionpool.py", line 374, in _make_request httplib_response = conn.getresponse() File "C:\Python34\lib\http\client.py", line 1227, in getresponse response.begin() File "C:\Python34\lib\http\client.py", line 386, in begin version, status, reason = self._read_status() File "C:\Python34\lib\http\client.py", line 348, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "C:\Python34\lib\socket.py", line 378, in readinto return self._sock.recv_into(b) File "C:\Python34\lib\ssl.py", line 748, in recv_into return self.read(nbytes, buffer) File "C:\Python34\lib\ssl.py", line 620, in read v = self._sslobj.read(len, buffer) requests.packages.urllib3.exceptions.Pro tocolError: ('Connection aborted.', ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Python34\lib\site-packages\telebot\util.py", line 58, in run task(*args, **kwargs) File "C:\Python34\lib\site-packages\telebot\__init__.py", line 159, in __retrieve_updates updates = self.get_updates(offset=(self.last_updat e_id + 1), timeout=timeout) File "C:\Python34\lib\site-packages\telebot\__init__.py", line 129, in get_updates json_updates = apihelper.get_updates(self.token, offset, limit, timeout, allowed_updates) File "C:\Python34\lib\site-packages\telebot\apihelper.py", line 175, in get_updates return _make_request(token, method_url, params=payload) File "C:\Python34\lib\site-packages\telebot\apihelper.py", line 54, in _make_request timeout=(connect_timeout, read_timeout), proxies=proxy) File "C:\Python34\lib\site-packages\requests\sessions.py", line 465, in request resp = self.send(prep, **send_kwargs) File "C:\Python34\lib\site-packages\requests\sessions.py", line 573, in send r = adapter.send(request, **kwargs) File "C:\Python34\lib\site-packages\requests\adapters.py", line 415, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)) Добавлено через 3 минуты
0
|
||||||||
|
|
||
| 23.11.2017, 22:19 | ||
|
То, что у вас сразу после перехвата возникают новые exception'ы - это уже отдельная тема. Но вы же об этом не написали - вы изначально неверно сформулировали свою проблему. У меня нет своего телеграм-бота, чтобы проверить ваш код, но суть не в этом. Вы написали, что Exception не перехватывает ошибки, вам ответили, что перехватывает - потому что документация не врет. Кто был прав? Теперь по новому сабжу: почему после перехвата ошибки, возникают новые? Вопрос на миллион: вы, в своем коде, используете точку входа в приложение? Для многопоточных приложений под windows это must have.
1
|
||
|
1 / 1 / 3
Регистрация: 26.05.2015
Сообщений: 98
|
||||||
| 23.11.2017, 22:36 [ТС] | ||||||
|
0
|
||||||
|
|
|
| 24.11.2017, 01:33 | |
|
Точка входа в компилируемых языках это главная функция main().
В python это блок if __name__ == '__main__': Его использование является good practice, даже если приложение однопоточное. Многопоточные приложения (telebot - многопоточный модуль) под windows без него вообще нельзя использовать. Добавлено через 20 минут Не по теме: Я бы вам дал более полный ответ, но не могу зарегистрироватся. Реально не могу.
0
|
|
| 24.11.2017, 01:33 | |
|
Помогаю со студенческими работами здесь
24
Google testing: как обработать исключения из SetUp() / TearDown()? Исключения: как из блока try обработать и передать наверх АВТОРСКОЕ исключение? Как посредством catch try throw сделать линейно без if else чтобы обработать исключения Калькулятор в одну строку и умеющий работать с римскими и арабскими цифрами. Как обработать исключения? Как мне обработать исключение так, чтобы программа продолжала работать, будто исключения не было? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|