def get_user_data(self, key, default = None):
if isinstance(self.user_data, dict):
return self.user_data.get(key, default)
else:
return default
Он может быть словарем, а может и не быть словарем, но иметь обработчик __getitem__ в этом обработчике он может генерить любое исключение. Мне нужно попытаться получить элемент key из user_data и в случае исключения вернуть default. Проблема в том, что код, который выше работает только с user_data, если он словарь или произошел от словаря, но не работает с самодельными классами.
Самодельный класс может генерить исключение KeyError и много других, например AccessDeny (если это класс для работы с FS) или NetError (если это класс для работы с сетью), ResourceError (для работы с галереей) и тд. Как все это учесть, учесть ЛЮБОЕ исключение, коих могут быть сотни?
единственный вариант, который я нашел – это ловить ВСЕ исключения (try: except:), что не хорошо. И как быть?