Error handling¶
When an error or an unexpected event occurs during a Hawkey routine, an exception is raised:
- if it is a general error that could be common to other Python programs, one of
the standard Python built-in exceptions is raised. For instance,
IOErrorandTypeErrorcan be raised from Hawkey. - programming errors within Hawkey that cause unexpected or invalid states raise
the standard
AssertionError. These should be reported as bugs against Hawkey. - programming errors due to incorrect use of the library usually produce
hawkey.ValueExceptionor one of its subclasses,QueryException(poorly formed Query) orArchException(unrecognized architecture). - sometimes there is a close call between blaming the error on an input
parameter or on something else, beyond the programmer’s
control.
hawkey.RuntimeExceptionis generally used in this case. hawkey.ValidationExceptionis raised when a function call performs a preliminary check before proceeding with the main operation and this check fails.
The class hierarchy for Hawkey exceptions is:
+-- hawkey.Exception
+-- hawkey.ValueException
| +-- hawkey.QueryException
| +-- hawkey.ArchException
+-- hawkey.RuntimeException
+-- hawkey.ValidationException