Python - определите, было ли вызвано исключение в функции
В настоящее время я пишу расширение для другой библиотеки Python, которое я не могу контролировать. Библиотека имеет такие функции:
def xyz():
try:
sources = []
...
#code that may add values to sources and may also throw an exception
...
return sources
except:
return sources
Если возвращается пустой список, я хочу каким-то образом выяснить, так ли это, потому что было сгенерировано исключение (до того, как значения могли быть добавлены к источникам), или просто потому, что значения не были добавлены к источникам (без исключения).
Есть идеи? Опять же, у меня нет контроля над функцией, поэтому я не могу изменить возвращаемое значение или добавить try->, кроме как вне функции.
1 ответ
Вместо этого вы всегда можете попытаться установить функцию lib с помощью разумной реализации:
import insanelib
def myxyz():
sources = []
...
#code that may add values to sources and may also throw an exception
...
return sources
insanelib.xyz = myxyz
Или вы можете отправить патч автору библиотеки, чтобы он хотя бы предоставил возможность не игнорировать исключения.