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,
IOError
andTypeError
can 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.ValueException
or 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.RuntimeException
is generally used in this case. hawkey.ValidationException
is 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