User Guide¶
This project provides a Python library for defining Exasol-compliant errors. Additionally, the defined errors can be parsed, allowing you to extract an error catalog from the code.
Error Objects¶
Error objects are built using the function ExaError
.
Please keep in mind that an error-code should satisfy the error-code format (see code).
Flexibility is provided by introducing placeholder parameters to the error message.
code¶
This parameter needs to obey the following format (^[FEW]-[[A-Z][A-Z0-9]+(-[A-Z][A-Z0-9]+)*-[0-9]+$
):
severity "-" project-short-tag ["-" module-short-tag] "-" error-number
where:
severity: either F (Failure, not recoverable), or E (Error, recoverable), or W (warning),
project-short-tag: alphanumeric starting with an alphabet.
module-short-tag: alphanumeric starting with an alphabet.
error-number: only number.
Examples of valid error codes:
E-EXA-22004
E-EXA-SQL-22004
F-VS-QRW-13
message¶
This parameter includes the error description which can be given by either a static string or a string containing placeholders in double curly brackets. Parameters of placeholders in the error message can be provided using the parameters
parameter.
mitigations¶
This parameter provides a list of hints on how to fix the error.
Parameters of placeholders in the mitigations can be given via the parameters
parameter.
parameters¶
This argument takes a dictionary of placeholder names and the respective parameter values. They will be used to replace the placeholders in the mitigations and messages.
Usage¶
Install the library¶
pip install exasol-error-reporting
Create a Simple Error¶
from exasol import error
error1 = error.ExaError(
"E-TEST-1", "A trivial error", "No mitigation available", {}
)
Specify Multiple Mitigations¶
from exasol import error
error2 = error.ExaError(
"E-TEST-2",
message="Fire in the server room",
mitigations=[
"Use the fire extinguisher",
"Flood the room with halon gas (Attention: make sure no humans are in the room!)"
],
parameters={}
)
Error Parameter(s) without description¶
from exasol import error
error3 = error.ExaError(
"E-TEST-2",
"Not enough space on device {{device}}.",
"Delete something from {{device}}.",
{"device": "/dev/sda1"},
)
Error with detailed Parameter(s)¶
from exasol import error
from exasol.error import Parameter
error4 = error.ExaError(
"E-TEST-2",
"Not enough space on device {{device}}.",
"Delete something from {{device}}.",
{"device": Parameter("/dev/sda1", "name of the device")},
)
Check out the user guide for more details.
Tooling¶
The exasol-error-reporting
library includes command-line tools to manage and work with error definitions. For further details, see the Tools section of the documentation.