Urllib3.exceptions.newconnectionError ошибка, обрабатываемая на одной машине, но не на другойPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Urllib3.exceptions.newconnectionError ошибка, обрабатываемая на одной машине, но не на другой

Сообщение Anonymous »

У меня есть странная проблема. Чтобы иметь короткий минимальный рабочий пример (MWE), давайте предположим, что Connect () возвращает объект urllib3.connection.httpconnection . Давайте также предположим, что у меня есть другие исключения, которые я хочу игнорировать, если «Magicword» найдено в сообщении об ошибке (не фактическое слово, но эй, это MWE).
mwe: < /strong> < /p>

try:
conn_obj = Connect()
except Exception as e: # there are some other exceptions I want to ignore
if 'magicword' not in e.message:
print 'fatal error: {}'.format(e.message)
< /code>

Это прекрасно работает на моей машине и печатает «фатальная ошибка», когда встречается и игнорирует другие исключения (как и в этом случае). < /p>

Однако на машине коллеги ошибка не обрабатывается и вместо этого вылетает и создает след. Это та же самая ошибка на моей машине, только его не печатает и сбои, вместо того, чтобы быть обработанным. Мы оба используем одну и ту же ОС (Windows 7). < /P>

Очевидно, что конкретное исключение не идеально, поэтому я попробовал этот маршрут: < /p>
from urllib3.exceptions import NewConnectionError

try:
conn_obj = Connect()
except NewConnectionError as nce:
print 'fatal error: {}'.format(e.message)
except Exception as e: # there are some other exceptions I want to ignore
if 'magicword' not in e.message:
print 'fatal error: {}'.format(e.message)
< /code>

Это тоже не сработало. По какой -то причине это не поймет исключение на его коробке. Почему исключение может быть обработано на моей машине, но не на его? Объект подключения поднимается внутри сторонней библиотеки Pyelasticsearch. Я всегда мог поймать это просто отлично, но его не поймают, используя один и тот же код на других машинах. Вот файл, который я написал, чтобы проверить, если ошибка была поймана при явном поднятии: < /p>

from urllib3.exceptions import NewConnectionError

def error_test(test_num):
print '\n\n'
try:
if test_num == 1:
print 'TEST 1: See if NewConnectionError is caught specifically'
raise NewConnectionError('no pool', 'test one')
elif test_num == 2:
print 'TEST 2: See if RuntimeError is caught related to magicword'
raise RuntimeError('test two magicword catching test')
elif test_num == 3:
print 'TEST 3: See if RuntimeError is caught NOT related to magicword'
raise RuntimeError('test three')
except NewConnectionError as nce:
print 'Test 1 passed successfully.\n\n{}'.format(nce.message)
except Exception as e:
if 'magicword' not in e.message:
print 'Test 3 passed successfully.\n\n{}'.format(e.message)
else:
print 'Test 2 passed successfully.\n\n{}'.format(e.message)

error_test(1)
error_test(2)
error_test(3)
< /code>

Этот тест прекрасно работал на обеих наших машинах. Так что каким-то образом, получая стороннюю библиотеку, связанную с тем, что что-то противоречивое между нашими машинами (на самом деле это в бинарном компилировании Pyinstaller, поэтому библиотечные различия не должны вступать в игру).

Подробнее здесь: https://stackoverflow.com/questions/337 ... -not-on-an
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»