Определенно возможно и почти всегда желательно отлавливать определенные исключения, которые выдают используемые вами модули.
Вы правы, что вам нужно импортировать это конкретное исключение из пакета, который вы используете, поскольку он не является частью Python, встроенного в исключения.
Глядя на документы pygresql
(около стр.88) , кажется, что большинство исключений происходит из pgdb
модуль.
Потенциально;
from pgdb import IntegrityError
# more code...
try:
db.insert(obj) # or whatever data access methods you have
except IntegrityError as e:
# handle the exception
print(str(e))
Или, возможно, модуль pgdb
находится внутри модуля pygresql
, поэтому он может быть from pygresql.pgdb import IntegrityError
. Фактический путь импорта может отличаться, но синтаксис будет таким, как указано выше.