|
1 / 1 / 3
Регистрация: 26.05.2015
Сообщений: 98
|
||||||
Try Exept, как правильно обработать некоторые исключения?20.11.2017, 15:52. Показов 10726. Ответов 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 | |
|
Google testing: как обработать исключения из SetUp() / TearDown()? Исключения: как из блока try обработать и передать наверх АВТОРСКОЕ исключение? Как посредством catch try throw сделать линейно без if else чтобы обработать исключения Калькулятор в одну строку и умеющий работать с римскими и арабскими цифрами. Как обработать исключения? Как мне обработать исключение так, чтобы программа продолжала работать, будто исключения не было? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|