Я определил собственное исключение, которое мне нужно отслеживать и запускать процесс всякий раз, когда он вызывается. В настоящее время я прилагаю каждую строчку, которая подвержена этой ошибке в случае пары try
- except
, но по мере роста кода это начинает выглядеть все более уродливым и громоздким.Перехватить конкретное исключение в модуле в Python
Есть способ сделать это с помощью модуля-модуля try
- except
заявление?
Т.Л., д-р
В настоящее время я делаю это:
class MyError(exception):
pass
try:
#error-prone code
except MyError:
context_aware_function()
И я ищу это:
class MyError(exception):
pass
errorManager.redirect(from=MyError,to=context_aware_operation)
#error-prone code
Хорошая стратегия. В сочетании с автоматическим оформлением всех функций это может быть хорошим решением, но, к сожалению, мои функции скрыты внутри объектов, поэтому мне действительно нужна переадресация по всему модулю. – chiffa
Вы можете использовать инфраструктуру python [introspection] (https://docs.python.org/2/library/inspect.html) для повторения классов и функций в модуле. Замена каждой функции завернутой версией может оказаться сложной, хотя ... – campkeith