Creating custom compile-time errors
Compile-time errors are one of the benefits of a compiled language. You are made aware of problems immediately versus needing to wait until that code is executed to find out there was a bug. However, because Crystal does not know the context around a specific error, it will always output the same error message for the same type of error. The last feature we are going to discuss in this chapter resolves around emitting your own custom compile-time errors.
Custom compile-time errors can be a great way to add additional information to the error message that makes the end user's life much easier by making it clearer what needs to be done to fix the problem. Going back to the example at the end of the last section, let's update our .exclude_type
macro to provide a better error message if an unexpected type is passed.
In the past few chapters, we have made use of various top-level macro methods, such as #env
, #flag
, and #debug
. Another...