/django/contrib/gis/gdal/error.py
https://code.google.com/p/mango-py/ · Python · 42 lines · 28 code · 0 blank · 14 comment · 0 complexity · 932a18559495b3f0fd5174245319cba7 MD5 · raw file
- """
- 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 GDALException(Exception): pass
- 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)