--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/django/contrib/gis/gdal/error.py Tue Oct 14 16:00:59 2008 +0000
@@ -0,0 +1,41 @@
+"""
+ This module houses the OGR & SRS Exception objects, and the
+ check_err() routine which checks the status code returned by
+ OGR methods.
+"""
+#### OGR & SRS Exceptions ####
+class OGRException(Exception): pass
+class SRSException(Exception): pass
+class OGRIndexError(OGRException, KeyError):
+ """
+ This exception is raised when an invalid index is encountered, and has
+ the 'silent_variable_feature' attribute set to true. This ensures that
+ django's templates proceed to use the next lookup type gracefully when
+ an Exception is raised. Fixes ticket #4740.
+ """
+ silent_variable_failure = True
+
+#### OGR error checking codes and routine ####
+
+# OGR Error Codes
+OGRERR_DICT = { 1 : (OGRException, 'Not enough data.'),
+ 2 : (OGRException, 'Not enough memory.'),
+ 3 : (OGRException, 'Unsupported geometry type.'),
+ 4 : (OGRException, 'Unsupported operation.'),
+ 5 : (OGRException, 'Corrupt data.'),
+ 6 : (OGRException, 'OGR failure.'),
+ 7 : (SRSException, 'Unsupported SRS.'),
+ 8 : (OGRException, 'Invalid handle.'),
+ }
+OGRERR_NONE = 0
+
+def check_err(code):
+ "Checks the given OGRERR, and raises an exception where appropriate."
+
+ if code == OGRERR_NONE:
+ return
+ elif code in OGRERR_DICT:
+ e, msg = OGRERR_DICT[code]
+ raise e, msg
+ else:
+ raise OGRException('Unknown error code: "%s"' % code)