Хотя я не могу поручиться за ваш опыт работы со сторонней библиотекой, на которую вы ссылались, я бы сказал, что по крайней мере ожидается документация об Исключениях.Возьмите встроенный smtplib , например.Объясняются исключения, которые могут быть сгенерированы, и методы включают в себя информацию о том, какие из них они сгенерируют и почему.
До того, как заранее знать, какие исключения могут быть сгенерированы, если вы не в аккаунтенапример, в IDE вы можете найти некоторый самоанализ кода, который даст вам то, что вы ищете.
По моему опыту, исключения - это то, что вы знаете заранее, потому что вы 'у вас есть неконтролируемые условия установки (работа с пользовательским вводом и т. д.) или вы используете методы, которые инкапсулируют поведение таким образом, чтобы исключить их.Например, в Python, если вы работали с объектом, у которого должен иметь заданный атрибут, но вы не уверены, что вы можете гарантировать, что у будет этот атрибут вместоДелая вызов Object.method()
, вы делаете это вместо этого:
# getattr uses the arguments (object, 'attribute', default)
toCall = getattr(MyInstance, 'methodName', None)
if toCall is not None:
toCall(args)
# or if you prefer
if toCall is None:
myDialogClass.NotifyUser('Object does not contain necessary method.')
При работе с коллекциями, такими как словари, это еще проще:
nums = dict((i, i) for i in range(30))
# Here the .get() method takes the form (key, default)
# No such thing as a KeyError
nums.get('50', None)
Так, обычно, когда вы обсуждаете программирование на Python,Идея не в том, что вам нужно убедиться, что каждое исключение учтено.Наоборот.Учтите те, которые вы должны, но программируйте, используя идиомы, которые сводят к минимуму количество из них, с которыми вам приходится иметь дело.