Хорошим дизайном для этого случая является определение базового исключения для вашего класса. Если кто-то хочет расширить ваш модуль, в вашей документации должно быть четко указано, что он должен использовать ваш тип исключения или расширить его. Используйте базовый класс для создания UserException
. В коде регистрации игнорируйте UserException
и регистрируйте все остальное.
Документирование этого поведения.
Ваш подход, вероятно, не сработает. Вы можете начать с этого:
ex.__class__.__module__
, который вернет __builtin__
для предопределенных исключений, но не для тех, которые определены в стандартных модулях Python (* .py файлы в библиотеке).
Кроме того, как вы планируете поддерживать исключения, определенные другими модулями, которые пользователи вашего кода установили с pip
?