Re: Plans for 2.8
| От | Rory Campbell-Lange |
|---|---|
| Тема | Re: Plans for 2.8 |
| Дата | |
| Msg-id | 20181004135501.2rvzcg3li4plo77b@campbell-lange.net обсуждение исходный текст |
| Ответ на | Plans for 2.8 (Daniele Varrazzo <daniele.varrazzo@gmail.com>) |
| Список | psycopg |
On 04/10/18, Daniele Varrazzo (daniele.varrazzo@gmail.com) wrote:
> The feature I'm the most excited about (and worried about its
> reception) is to raise a different exception for every postgres error
> message (see #682) . For instance `SELECT * FROM wrong_name` will
> raise `UndefinedTable` rather than `ProgrammingError`. Currently
> handling a specific exception requires catching a broader class and
> looking at the pgcode:
>
> try:
> cur.execute("lock table %s in access exclusive mode nowait" % name)
> except psycopg2.OperationalError as e:
> if e.pgcode == psycopg2.errorcodes.LOCK_NOT_AVAILABLE:
> locked = True
> else:
> raise
>
> This can become a much more natural:
>
> try:
> cur.execute("lock table %s in access exclusive mode nowait" % name)
> except psycopg2.errors.LockNotAvailable:
> locked = True
>
> The error classes are generated automatically from Postgres source
> code and are subclasses of the previously existing ones, so existing
> code should be unaffected. I'd be happy to have input about the
> feature and suggestions before releasing it.
Hi Daniele
The greater depth of exception reporting looks great to me, particularly
if they are subclasses of the existing ones.
Regards
Rory
В списке psycopg по дате отправления: