From 59a352087591a26023412cbcb830cd1d34fc9b99 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 26 Feb 2013 14:53:34 +0100 Subject: Refactored database exceptions wrapping. Squashed commit of the following: commit 2181d833ed1a2e422494738dcef311164c4e097e Author: Aymeric Augustin Date: Wed Feb 27 14:28:39 2013 +0100 Fixed #15901 -- Wrapped all PEP-249 exceptions. commit 5476a5d93c19aa2f928c497d39ce6e33f52694e2 Author: Aymeric Augustin Date: Tue Feb 26 17:26:52 2013 +0100 Added PEP 3134 exception chaining. Thanks Jacob Kaplan-Moss for the suggestion. commit 9365fad0a650328002fb424457d675a273c95802 Author: Aymeric Augustin Date: Tue Feb 26 17:13:49 2013 +0100 Improved API for wrapping database errors. Thanks Alex Gaynor for the proposal. commit 1b463b765f2826f73a8d9266795cd5da4f8d5e9e Author: Aymeric Augustin Date: Tue Feb 26 15:00:39 2013 +0100 Removed redundant exception wrapping. This is now taken care of by the cursor wrapper. commit 524bc7345a724bf526bdd2dd1bcf5ede67d6bb5c Author: Aymeric Augustin Date: Tue Feb 26 14:55:10 2013 +0100 Wrapped database exceptions in the base backend. This covers the most common PEP-249 APIs: - Connection APIs: close(), commit(), rollback(), cursor() - Cursor APIs: callproc(), close(), execute(), executemany(), fetchone(), fetchmany(), fetchall(), nextset(). Fixed #19920. commit a66746bb5f0839f35543222787fce3b6a0d0a3ea Author: Aymeric Augustin Date: Tue Feb 26 14:53:34 2013 +0100 Added a wrap_database_exception context manager and decorator. It re-throws backend-specific exceptions using Django's common wrappers. --- docs/ref/exceptions.txt | 18 ++++++++++++++---- docs/releases/1.6.txt | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/ref/exceptions.txt b/docs/ref/exceptions.txt index f123ae2e59..93bb9ed251 100644 --- a/docs/ref/exceptions.txt +++ b/docs/ref/exceptions.txt @@ -119,18 +119,28 @@ NoReverseMatch Database Exceptions =================== -Django wraps the standard database exceptions :exc:`DatabaseError` and -:exc:`IntegrityError` so that your Django code has a guaranteed common -implementation of these classes. These database exceptions are -provided in :mod:`django.db`. +Django wraps the standard database exceptions so that your Django code has a +guaranteed common implementation of these classes. These database exceptions +are provided in :mod:`django.db`. +.. exception:: Error +.. exception:: InterfaceError .. exception:: DatabaseError +.. exception:: DataError +.. exception:: OperationalError .. exception:: IntegrityError +.. exception:: InternalError +.. exception:: ProgrammingError +.. exception:: NotSupportedError The Django wrappers for database exceptions behave exactly the same as the underlying database exceptions. See :pep:`249`, the Python Database API Specification v2.0, for further information. +.. versionchanged:: 1.6 + Previous version of Django only wrapped ``DatabaseError`` and + ``IntegrityError``. + .. exception:: models.ProtectedError Raised to prevent deletion of referenced objects when using diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 1083d4d515..c6a4fb2d5d 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -60,6 +60,8 @@ Minor features * In addition to :lookup:`year`, :lookup:`month` and :lookup:`day`, the ORM now supports :lookup:`hour`, :lookup:`minute` and :lookup:`second` lookups. +* Django now wraps all PEP-249 exceptions. + * The default widgets for :class:`~django.forms.EmailField`, :class:`~django.forms.URLField`, :class:`~django.forms.IntegerField`, :class:`~django.forms.FloatField` and :class:`~django.forms.DecimalField` use -- cgit v1.3