 <p>?THROW is a macro. It should be define somewhere as:</p> <pre><code>-define(THROW(Format,Params),throw(io_lib:format(Format,Params))). </code></pre> <p>In this definition, the call to <code>io_lib:format(Format,Params)</code> returns a single string that is used as Reason by the function throw.</p>