Обработка ошибок неоднозначности?
Я использую wikipedia
библиотека, и я хочу справиться с DisambiguationError
как исключение. Моя первая попытка была
try:
wikipedia.page('equipment') # could be any ambiguous term
except DisambiguationError:
pass
Во время исполнения строка 3 не достигнута. Более общий вопрос: как я могу найти тип ошибки для библиотечного класса, подобного этому?
1 ответ
Вот рабочий пример:
import wikipedia
try:
wikipedia.page('equipment')
except wikipedia.exceptions.DisambiguationError as e:
print("Error: {0}".format(e))
Относительно вашего более общего вопроса how can I find the error type for a library-specific class like this?
мой трюк на самом деле довольно прост, я имею тенденцию захватывать исключения, а затем просто печатать __class__
Таким образом, я буду знать, какое конкретное исключение мне нужно запечатлеть.
Один пример выяснения того, какое конкретное исключение нужно зафиксировать здесь:
try:
0/0
except Exception as e:
print("Exception.__class__: {0}".format(e.__class__))
Это напечатало бы Exception.__class__: <type 'exceptions.ZeroDivisionError'>
так я знал exceptions.ZeroDivisionError
будет точное исключение, чтобы иметь дело с чем-то более общим