About exceptions namespace
The exceptions
namespace can be used to raise warnings and errors in dbt userspace.
raise_compiler_error
The exceptions.raise_compiler_error
method will raise a compiler error with the provided message. This is typically only useful in macros or materializationsThe exact Data Definition Language (DDL) that dbt will use when creating the model’s equivalent in a data warehouse. when invalid arguments are provided by the calling model. Note that throwing an exception will cause a model to fail, so please use this variable with care!
Example usage:
{% if number < 0 or number > 100 %}
{{ exceptions.raise_compiler_error("Invalid `number`. Got: " ~ number) }}
{% endif %}
warn
Use the exceptions.warn
method to raise a compiler warning with the provided message, but any model will still be successful and be treated as a PASS. By default, warnings will not cause dbt runs to fail. However:
- If you use the
--warn-error
flag, all warnings will be promoted to errors. - To promote only Jinja warnings to errors (and leave other warnings alone), use
--warn-error-options
. For example,--warn-error-options '{"error": ["JinjaLogWarning"]}'
.
Learn more about Warnings.
Example usage:
{% if number < 0 or number > 100 %}
{% do exceptions.warn("Invalid `number`. Got: " ~ number) %}
{% endif %}