emacs.d/clones/scheme/docs.racket-lang.org/reference/exns.html

507 lines
423 KiB
HTML
Raw Normal View History

2022-09-30 11:00:09 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=0.8"/><title>10.2&nbsp;Exceptions</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="extras.css" title="default"/><link rel="stylesheet" type="text/css" href="icons.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">The Racket Reference</a></td></tr></table></div><div class="tocviewsublisttop" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="model.html" class="tocviewlink" data-pltdoc="x">Language Model</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="notation.html" class="tocviewlink" data-pltdoc="x">Notation for Documentation</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="syntax.html" class="tocviewlink" data-pltdoc="x">Syntactic Forms</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="data.html" class="tocviewlink" data-pltdoc="x">Datatypes</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="structures.html" class="tocviewlink" data-pltdoc="x">Structures</a></td></tr><tr><td align="right">6&nbsp;</td><td><a href="mzlib_class.html" class="tocviewlink" data-pltdoc="x">Classes and Objects</a></td></tr><tr><td align="right">7&nbsp;</td><td><a href="mzlib_unit.html" class="tocviewlink" data-pltdoc="x">Units</a></td></tr><tr><td align="right">8&nbsp;</td><td><a href="contracts.html" class="tocviewlink" data-pltdoc="x">Contracts</a></td></tr><tr><td align="right">9&nbsp;</td><td><a href="match.html" class="tocviewlink" data-pltdoc="x">Pattern Matching</a></td></tr><tr><td align="right">10&nbsp;</td><td><a href="control.html" class="tocviewselflink" data-pltdoc="x">Control Flow</a></td></tr><tr><td align="right">11&nbsp;</td><td><a href="concurrency.html" class="tocviewlink" data-pltdoc="x">Concurrency and Parallelism</a></td></tr><tr><td align="right">12&nbsp;</td><td><a href="Macros.html" class="tocviewlink" data-pltdoc="x">Macros</a></td></tr><tr><td align="right">13&nbsp;</td><td><a href="input-and-output.html" class="tocviewlink" data-pltdoc="x">Input and Output</a></td></tr><tr><td align="right">14&nbsp;</td><td><a href="security.html" class="tocviewlink" data-pltdoc="x">Reflection and Security</a></td></tr><tr><td align="right">15&nbsp;</td><td><a href="os.html" class="tocviewlink" data-pltdoc="x">Operating System</a></td></tr><tr><td align="right">16&nbsp;</td><td><a href="memory.html" class="tocviewlink" data-pltdoc="x">Memory Management</a></td></tr><tr><td align="right">17&nbsp;</td><td><a href="unsafe.html" class="tocviewlink" data-pltdoc="x">Unsafe Operations</a></td></tr><t
model. It is based on a proposal by Friedman, Haynes, and Dybvig
[<a href="doc-bibliography.html#%28cite._.Friedman95%29" data-pltdoc="x">Friedman95</a>].</p><p>Whenever a primitive error occurs in Racket, an exception is
raised. The value that is passed to the current <a href="eval-model.html#%28tech._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">exception
handler</span></a> for a primitive error is always an instance of the
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn%29%29" class="RktValLink" data-pltdoc="x">exn</a></span> structure type. Every <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn%29%29" class="RktValLink" data-pltdoc="x">exn</a></span> structure value has a
<span class="RktSym">message</span> field that is a string, the primitive error message.
The default exception handler recognizes exception values with the
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3f%29%29" class="RktValLink" data-pltdoc="x">exn?</a></span> predicate and passes the error message to the current
<a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error display handler</span></a> (see <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-display-handler%29%29" class="RktValLink" data-pltdoc="x">error-display-handler</a></span>).</p><p>Primitive procedures that accept a procedure argument with a
particular required arity (e.g., <span class="RktSym"><a href="file-ports.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._call-with-input-file%29%29" class="RktValLink" data-pltdoc="x">call-with-input-file</a></span>,
<span class="RktSym"><a href="cont.html#%28def._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._call%2Fcc%29%29" class="RktValLink" data-pltdoc="x">call/cc</a></span>) check the argument&rsquo;s arity immediately, raising
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> if the arity is incorrect.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;err-msg-conventions&quot;">10.2.1<tt>&nbsp;</tt><a name="(part._err-msg-conventions)"></a>Error Message Conventions</h5><p>Racket&rsquo;s <a name="(tech._error._message._convention)"></a><span style="font-style: italic">error message convention</span> is to produce error
messages with the following shape:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="sroman">&#8249;<span style="font-style: italic">srcloc</span>&#8250;</span><span class="RktSym">:</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">name</span>&#8250;</span><span class="RktSym">:</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">message</span>&#8250;</span><span class="stt">;</span></td></tr><tr><td><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">continued-message</span>&#8250;</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">field</span>&#8250;</span><span class="RktSym">:</span><span class="hspace">&nbsp;</span><span class="sroman">&#8249;<span style="font-style: italic">detail</span>&#8250;</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span></td></tr></table></blockquote><p>The message starts with an optional source location, <span class="sroman">&#8249;<span style="font-style: italic">srcloc</span>&#8250;</span>,
which is followed by a colon and space when present. The message
continues with an optional <span class="sroman">&#8249;<span style="font-style: italic">name</span>&#8250;</span> that usually identifies the
complaining function, syntactic form, or other entity, but may also
refer to an entity being complained about; the <span class="sroman">&#8249;<span style="font-style: italic">name</span>&#8250;</span> is also
followed by a colon and space when present.</p><p>The <span class="sroman">&#8249;<span style="font-style: italic">message</span>&#8250;</span> should be relatively short, and it should be
largely independent of specific values that triggered the error. More
detailed explanation that requires multiple lines should continue with
each line indented by a single space, in which case <span class="sroman">&#8249;<span style="font-style: italic">message</span>&#8250;</span>
should end in a semi-colon (but the semi-colon should be omitted if
<span class="sroman">&#8249;<span style="font-style: italic">continued-message</span>&#8250;</span> is not present). Message text should be
lowercase&#8212;<wbr></wbr>using semi-colons to separate sentences if needed,
although long explanations may be better deferred to extra fields.</p><p>Specific values that triggered the error or other helpful information
should appear in separate <span class="sroman">&#8249;<span style="font-style: italic">field</span>&#8250;</span> lines, each of which is
indented by two spaces. If a <span class="sroman">&#8249;<span style="font-style: italic">detail</span>&#8250;</span> is especially long or
takes multiple lines, it should start on its own line after the
<span class="sroman">&#8249;<span style="font-style: italic">field</span>&#8250;</span> label, and each of its lines should be indented by
three spaces. Field names should be all lowercase.</p><p>A <span class="sroman">&#8249;<span style="font-style: italic">field</span>&#8250;</span> name should end with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">...</span><span class="hspace"></span></span> if the field
provides relatively detailed information that might be distracting in
common cases but useful in others. For example, when a contract
failure is reported for a particular argument of a function, other
arguments to the function might be shown in an &ldquo;other arguments...&rdquo;
field. The intent is that fields whose names end in <span class="RktInBG"><span class="hspace"></span><span class="RktIn">...</span><span class="hspace"></span></span>
might be hidden by default in an environment such as DrRacket.</p><p>Make <span class="sroman">&#8249;<span style="font-style: italic">field</span>&#8250;</span> names as short as possible, relying on
<span class="sroman">&#8249;<span style="font-style: italic">message</span>&#8250;</span> or <span class="sroman">&#8249;<span style="font-style: italic">continued message</span>&#8250;</span> text to clarify the
meaning for a field. For example, prefer &ldquo;given&rdquo; to &ldquo;given turtle&rdquo;
as a field name, where <span class="sroman">&#8249;<span style="font-style: italic">message</span>&#8250;</span> is something like &ldquo;given
turtle is too sleepy&rdquo; to clarify that &ldquo;given&rdquo; refers to a turtle.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;errorproc&quot;">10.2.2<tt>&nbsp;</tt><a name="(part._errorproc)"></a>Raising Exceptions</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktOpt">[</span><span class="RktVar">barrier?</span><span class="RktOpt">]</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">barrier?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#t</span></td></tr></table></blockquote></div><div class="SIntrapara">Raises an exception, where <span class="RktVar">v</span> represents the exception being
raised. The <span class="RktVar">v</span> argument can be anything; it is passed to the
current <a href="eval-model.html#%28tech._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">exception handler</span></a>.</div></p><p>If <span class="RktVar">barrier?</span> is true, then the call to the <a href="eval-model.html#%28tech._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">exception
handler</span></a> is protected by a <a href="eval-model.html#%28tech._continuation._barrier%29" class="techoutside" data-pltdoc="x"><span class="techinside">continuation barrier</span></a>, so that
multiple returns/escapes are impossible. All exceptions raised by
<a href="index.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket</span></a> functions effectively use <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span> with a
<span class="RktVal">#t</span> value for <span class="RktVar">barrier?</span>.</p><p>Breaks are disabled from the time the exception is raised until the
exception handler obtains control, and the handler itself is
<span class="RktSym"><a href="breakhandler.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize-break%29%29" class="RktStxLink" data-pltdoc="x">parameterize-break</a></span>ed to disable breaks initially; see
<a href="breakhandler.html" data-pltdoc="x">Breaks</a> for more information on breaks.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._number~3f%29%29" class="RktValLink" data-pltdoc="x">number?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">n</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._%2B%29%29" class="RktValLink" data-pltdoc="x">+</a></span><span class="hspace">&nbsp;</span><span class="RktSym">n</span><span class="hspace">&nbsp;</span><span class="RktVal">5</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span><span class="hspace">&nbsp;</span><span class="RktVal">18</span><span class="hspace">&nbsp;</span><span class="RktVal">#t</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktRes">23</span></p></td></tr><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span><span class="hspace">&nbsp;</span><span class="RktSym">my-exception</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3auser%29%29" class="RktValLink" data-pltdoc="x">exn:fail:user</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym">my-exception?</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">e</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)<
string. The different forms produce the error string in different
ways:</div></p><ul><li><p><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="stt"> </span><span class="RktVar">message-sym</span><span class="RktPn">)</span> creates a message string by concatenating
<span class="RktVal">"error: "</span> with the string form of <span class="RktVar">message-sym</span>. Use this
form sparingly.</p></li><li><p><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="stt"> </span><span class="RktVar">message-str</span><span class="stt"> </span><span class="RktVar">v</span><span class="stt"> </span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="RktPn">)</span> creates a message string by
concatenating <span class="RktVar">message-str</span> with string versions of the <span class="RktVar">v</span>s
(as produced by the current error value conversion handler; see
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-value-~3estring-handler%29%29" class="RktValLink" data-pltdoc="x">error-value-&gt;string-handler</a></span>). A space is inserted before
each <span class="RktVar">v</span>. Use this form sparingly, because it does not conform
well to Racket&rsquo;s <a href="exns.html#%28tech._error._message._convention%29" class="techoutside" data-pltdoc="x"><span class="techinside">error message conventions</span></a>; consider
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arguments-error%29%29" class="RktValLink" data-pltdoc="x">raise-arguments-error</a></span>, instead. </p></li><li><p><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="stt"> </span><span class="RktVar">who-sym</span><span class="stt"> </span><span class="RktVar">format-str</span><span class="stt"> </span><span class="RktVar">v</span><span class="stt"> </span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="RktPn">)</span> creates a
message string equivalent to the string created by</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._format%29%29" class="RktValLink" data-pltdoc="x">format</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string-append%29%29" class="RktValLink" data-pltdoc="x">string-append</a></span><span class="hspace">&nbsp;</span><span class="RktVal">"~s: "</span><span class="hspace">&nbsp;</span><span class="RktVar">format-str</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktVar">who-sym</span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="RktPn">)</span></p></blockquote><p>When possible, use functions such as <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%29%29" class="RktValLink" data-pltdoc="x">raise-argument-error</a></span>,
instead, which construct messages that follow Racket&rsquo;s <a href="exns.html#%28tech._error._message._convention%29" class="techoutside" data-pltdoc="x"><span class="techinside">error message
conventions</span></a>.</p></li></ul><p>In all cases, the constructed message string is passed to
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail</a></span>, and the resulting exception is raised.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">failed</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">error: failed</span></p></td></tr><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">"failed"</span><span class="hspace">&nbsp;</span><span class="RktVal">23</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">pizza</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list%29%29" class="RktValLink" data-pltdoc="x">list</a></span><span class="hspace">&nbsp;</span><span class="RktVal">1</span><span class="hspace">&nbsp;</span><span class="RktVal">2</span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">failed 23 'pizza '(1 2 3)</span></p></td></tr><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">method-a</span><span class="hspace">&nbsp;</span><span class="RktVal">"failed because ~a"</span><span class="hspace">&nbsp;</span><span class="RktVal">"no argument supplied"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">method-a: failed because no argument supplied</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-user-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-user-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-user-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">message-sym</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">message-sym</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-user-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-user-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">message-str</span><span class="hspace">&nbsp;</
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3auser%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:user</a></span> instead of <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail</a></span>. The
default <a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error display handler</span></a> does not show a &ldquo;stack trace&rdquo; for
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3auser%29%29" class="RktValLink" data-pltdoc="x">exn:fail:user</a></span> exceptions (see <a href="contmarks.html" data-pltdoc="x">Continuation Marks</a>), so
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-user-error%29%29" class="RktValLink" data-pltdoc="x">raise-user-error</a></span> should be used for errors that are intended
for end users.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-argument-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-argument-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-argument-error</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">expected</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">bad-pos</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a h
an exception. The <span class="RktVar">name</span> argument is used as the source
procedure&rsquo;s name in the error message. The <span class="RktVar">expected</span> argument
is used as a description of the expected contract (i.e., as a string,
but the string is intended to contain a contract expression).</div></p><p>In the first form, <span class="RktVar">v</span> is the value received by the procedure
that does not have the expected type.</p><p>In the second form, the bad argument is indicated by an index
<span class="RktVar">bad-pos</span> (counting from <span style="font-style: italic"></span>0<span style="font-style: italic"></span>), and all of the original
arguments <span class="RktVar">v</span> are provided (in order). The resulting error
message names the bad argument and also lists the other arguments. If
<span class="RktVar">bad-pos</span> is not less than the number of <span class="RktVar">v</span>s, the
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception is raised.</p><p>The error message generated by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%29%29" class="RktValLink" data-pltdoc="x">raise-argument-error</a></span> is
adjusted via <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-contract-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-contract-&gt;adjusted-string</a></span> and then
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> using the default
<span class="RktVal">'</span><span class="RktVal">racket</span> realm.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">feed-machine</span><span class="hspace">&nbsp;</span><span class="RktSym">bits</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="if.html#%28form._%28%28quote._~23~25kernel%29._if%29%29" class="RktStxLink" data-pltdoc="x">if</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._not%29%29" class="RktValLink" data-pltdoc="x">not</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._integer~3f%29%29" class="RktValLink" data-pltdoc="x">integer?</a></span><span class="hspace">&nbsp;</span><span class="RktSym">bits</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%29%29" class="RktValLink" data-pltdoc="x">raise-argument-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">feed-machine</span><span class="hspace">&nbsp;</span><span class="RktVal">"integer?"</span><span class="hspace">&nbsp;</span><span class="RktSym">bits</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">"fed the machine"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym">feed-machine</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">turkey</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">feed-machine: contract violation</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">expected: integer?</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">given: 'turkey</span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">feed-cow</span><span class="hspace">&nbsp;</span><span class="RktSym">animal</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="if.html#%28form._%28%28quote._~23~25kernel%29._if%29%29" class="RktStxLink" data-pltdoc="x">if</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._not%29%29" class="RktValLink" data-pltdoc="x">not</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._eq~3f%29%29" class="RktValLink" data-pltdoc="x">eq?</a></span><span c
for error-message adjustments.</div></p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-result-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-result-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-result-error</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">expected</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">bad-pos</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><t
as a &ldquo;result&rdquo; instead of an &ldquo;argument.&rdquo;</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-result-error*))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-error%2A%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-result-error*</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">realm</span><span class="hspace">&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">realm</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-error%2A%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-result-error*</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">realm</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">expected</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top
for error-message adjustments.</div></p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-arguments-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arguments-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-arguments-error</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">message</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">field</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktMeta">...</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">message</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">field</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</sp
an exception. The <span class="RktVar">name</span> is used as the source procedure&rsquo;s
name in the error message. The <span class="RktVar">message</span> is the error
message; if <span class="RktVar">message</span> contains newline characters, each extra line should be
suitably indented (with one extra space at the start of each line), but it should not end with a newline character.
Each <span class="RktVar">field</span> must have a corresponding <span class="RktVar">v</span>,
and the two are rendered on their own
line in the error message; each <span class="RktVar">v</span> is formatted
using the error value conversion handler (see
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-value-~3estring-handler%29%29" class="RktValLink" data-pltdoc="x">error-value-&gt;string-handler</a></span>), unless <span class="RktVar">v</span> is a
<a href="exns.html#%28tech._unquoted._printing._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">unquoted-printing string</span></a>, in which case the string content is
<span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._display%29%29" class="RktValLink" data-pltdoc="x">display</a></span>ed without using the error value conversion handler.</div></p><p>The error message generated by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-error%29%29" class="RktValLink" data-pltdoc="x">raise-result-error</a></span> is adjusted
via <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-contract-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-contract-&gt;adjusted-string</a></span> and then
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> using the default
<span class="RktVal">'</span><span class="RktVal">racket</span> realm.</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arguments-error%29%29" class="RktValLink" data-pltdoc="x">raise-arguments-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">eat</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">"fish is smaller than its given meal"</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">"fish"</span><span class="hspace">&nbsp;</span><span class="RktVal">12</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">"meal"</span><span class="hspace">&nbsp;</span><span class="RktVal">13</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktErr">eat: fish is smaller than its given meal</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">fish: 12</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">meal: 13</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-arguments-error*))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arguments-error%2A%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-arguments-error*</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">realm</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">message</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">field</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span clas
for error-message adjustments.</div></p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-range-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-range-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-range-error</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">type-description</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">index-prefix</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">index</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">in-value</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">lower-bound</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">upper-bound</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">alt-lower-bound</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28l
an exception to report an out-of-range error. The <span class="RktVar">type-description</span>
string describes the value for which the index is meant to select an element,
and <span class="RktVar">index-prefix</span> is a prefix for the word &ldquo;index.&rdquo; The <span class="RktVar">index</span>
argument is the rejected index. The <span class="RktVar">in-value</span> argument is the value
for which the index was meant. The <span class="RktVar">lower-bound</span> and <span class="RktVar">upper-bound</span>
arguments specify the valid range of indices, inclusive; if <span class="RktVar">upper-bound</span>
is below <span class="RktVar">lower-bound</span>, the value is characterized as &ldquo;empty.&rdquo; If <span class="RktVar">alt-lower-bound</span>
is not <span class="RktVal">#f</span>, and if <span class="RktVar">index</span> is between <span class="RktVar">alt-lower-bound</span>
and <span class="RktVar">upper-bound</span>, then the error is report as <span class="RktVar">index</span> being less
than the &ldquo;starting&rdquo; index <span class="RktVar">lower-bound</span>.</div></p><p>Since <span class="RktVar">upper-bound</span> is inclusive, a typical value is <span class="emph">one
less than</span> the size of a collection&#8212;<wbr></wbr>for example, <span class="RktPn">(</span><span class="RktSym"><a href="generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._sub1%29%29" class="RktValLink" data-pltdoc="x">sub1</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector-length%29%29" class="RktValLink" data-pltdoc="x">vector-length</a></span><span class="stt"> </span><span class="RktVar">vec</span><span class="RktPn">)</span><span class="RktPn">)</span>, <span class="RktPn">(</span><span class="RktSym"><a href="generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._sub1%29%29" class="RktValLink" data-pltdoc="x">sub1</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._length%29%29" class="RktValLink" data-pltdoc="x">length</a></span><span class="stt"> </span><span class="RktVar">lst</span><span class="RktPn">)</span><span class="RktPn">)</span>, and so on.</p><p>The error message generated by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-range-error%29%29" class="RktValLink" data-pltdoc="x">raise-range-error</a></span> is adjusted
via <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> using the default
<span class="RktVal">'</span><span class="RktVal">racket</span> realm.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-range-error%29%29" class="RktValLink" data-pltdoc="x">raise-range-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">vector-ref</span><span class="hspace">&nbsp;</span><span class="RktVal">"vector"</span><span class="hspace">&nbsp;</span><span class="RktVal">"starting "</span><span class="hspace">&nbsp;</span><span class="RktVal">5</span><span class="hspace">&nbsp;</span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">1</span><span class="hspace">&nbsp;</span><span class="RktVal">2</span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="hspace">&nbsp;</span><span class="RktVal">4</span><span class="RktVal">)</span><span class="hspace">&nbsp;</span><span class="RktVal">0</span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">vector-ref: starting index is out of range</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">starting index: 5</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">valid range: [0, 3]</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">vector: '#(1 2 3 4)</span></p></td></tr><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-range-error%29%29" class="RktValLink" data-pltdoc="x">raise-range-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">vector-ref</span><span class="hspace">&nbsp;</span><span class="RktVal">"vector"</span><span class="hspace">&nbsp;</span><span class="RktVal">"ending "</span><span class="hspace">&nbsp;</span><span class="RktVal">5</span><span class="hspace">&nbsp;</span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">1</span><span class="hspace">&nbsp;</span><span class="RktVal">2</span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="hspace">&nbsp;</span><span class="RktVal">4</span><span class="RktVal">)</span><span class="hspace">&nbsp;</span><span class="RktVal">0</span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">vector-ref: ending index is out of range</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">ending index: 5</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">valid range: [0, 3]</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">vector: '#(1 2 3 4)</span></p></td></tr><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-range-error%29%29" class="RktValLink" data-pltdoc="x">raise-range-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">vector-ref</span><span class="hspace">&nbsp;</span><span class="RktVal">"vector"</span><span class="hspace">&nbsp;</span><span class="RktVal">""</span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="hspace">&nbsp;</span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="hspace">&nbsp;</span><span class="RktVal">0</span><span class="hspace">&nbsp;</span><span class="RktVal
for error-message adjustments.</div></p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-type-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-type-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-type-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-type-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-type-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span><span class="RktVar">bad-pos</span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">expected</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">bad-pos</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-int
conventions, and where <span class="RktVar">expected</span> is used as a &ldquo;type&rdquo;
description instead of a contract expression. Use <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%29%29" class="RktValLink" data-pltdoc="x">raise-argument-error</a></span>
or <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-error%29%29" class="RktValLink" data-pltdoc="x">raise-result-error</a></span>, instead.</div></p><p>The error message generated by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-type-error%29%29" class="RktValLink" data-pltdoc="x">raise-type-error</a></span> is adjusted
via <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> using the default
<span class="RktVal">'</span><span class="RktVal">racket</span> realm.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-mismatch-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-mismatch-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-mismatch-error</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">message</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...+</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktMeta">...+</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">message</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Similar to <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arguments-error%29%29" class="RktValLink" data-pltdoc="x">raise-arguments-error</a></span>, but using Racket&rsquo;s old
formatting conventions, with a required <span class="RktVar">v</span> immediately
after the first <span class="RktVar">message</span> string, and with further <span class="RktVar">message</span>
strings that are spliced into the message without line breaks or
space. Use <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arguments-error%29%29" class="RktValLink" data-pltdoc="x">raise-arguments-error</a></span>, instead.</div></p><p>The error message generated by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-mismatch-error%29%29" class="RktValLink" data-pltdoc="x">raise-mismatch-error</a></span> is adjusted
via <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> using the default
<span class="RktVal">'</span><span class="RktVal">racket</span> realm.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-arity-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-arity-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">arity-v</span><span class="hspace">&nbsp;</span><span class="RktVar">arg-v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure~3f%29%29" class="RktValLink" data-pltdoc="x">procedure?</a></span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">arity-v</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._arity-at-least~3f%29%29" class="RktValLink" data-pltdoc="x">arity-at-least?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a h
it as an exception. The <span class="RktVar">name</span> is used for the source
procedure&rsquo;s name in the error message.</div></p><p>The <span class="RktVar">arity-v</span> value must
be a possible result from <span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure-arity%29%29" class="RktValLink" data-pltdoc="x">procedure-arity</a></span>, except
that it does not have to be normalized (see <span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure-arity~3f%29%29" class="RktValLink" data-pltdoc="x">procedure-arity?</a></span> for
the details of normalized arities); <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%29%29" class="RktValLink" data-pltdoc="x">raise-arity-error</a></span>
will normalize the arity and use the normalized form in the error message.
If <span class="RktVar">name</span> is a procedure, its actual arity is
ignored.</p><p>The <span class="RktVar">arg-v</span> arguments are the actual supplied
arguments, which are shown in the error message (using the error value
conversion handler; see <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-value-~3estring-handler%29%29" class="RktValLink" data-pltdoc="x">error-value-&gt;string-handler</a></span>); also,
the number of supplied <span class="RktVar">arg-v</span>s is explicitly mentioned in the
message.</p><p>The error message generated by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%29%29" class="RktValLink" data-pltdoc="x">raise-arity-error</a></span> is adjusted
via <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> using the default
<span class="RktVal">'</span><span class="RktVal">racket</span> realm.</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%29%29" class="RktValLink" data-pltdoc="x">raise-arity-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unite</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="procedures.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._arity-at-least%29%29" class="RktValLink" data-pltdoc="x">arity-at-least</a></span><span class="hspace">&nbsp;</span><span class="RktVal">13</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktVal">"Virginia"</span><span class="hspace">&nbsp;</span><span class="RktVal">"Maryland"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">unite: arity mismatch;</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;</span><span class="RktErr">the expected number of arguments does not match the given</span></p></td></tr><tr><td><p><span class="RktErr">number</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">expected: at least 13</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">given: 2</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">arguments...:</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;</span><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">"Virginia"</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;</span><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">"Maryland"</span></p></td></tr></table></blockquote></div></p><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-arity-error*))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%2A%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-arity-error*</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">realm</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">arity-v</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class
for error-message adjustments.</p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-arity-mask-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-mask-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-arity-mask-error</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">mask</span><span class="hspace">&nbsp;</span><span class="RktVar">arg-v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure~3f%29%29" class="RktValLink" data-pltdoc="x">procedure?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">mask</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-integer?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">arg-v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">The same as <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%29%29" class="RktValLink" data-pltdoc="x">raise-arity-error</a></span>, but using the arity representation
described with <span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure-arity-mask%29%29" class="RktValLink" data-pltdoc="x">procedure-arity-mask</a></span>.</div></p><p class="SHistory">Added in version 7.0.0.11 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-arity-mask-error*))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-mask-error%2A%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-arity-mask-error*</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">realm</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">mask</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">arg-v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure~3f%29%29" class="RktValLink" data-pltdoc="x">procedure?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">realm</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">mask</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~2
for error-message adjustments.</div></p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-result-arity-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-arity-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-result-arity-error</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">arity-v</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">detail-str</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">result-v</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">arity-v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">detail-str</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._
instead of an &ldquo;argument&rdquo; mismatch. The <span class="RktVar">name</span> argument can be
<span class="RktVal">#f</span> to omit an initial source for the error. The
<span class="RktVar">detail-str</span> argument, if non-<span class="RktVal">#f</span>, should be a string
that starts with a newline, since it is added near the end of the
generated error message.</div></p><p>The error message generated by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-arity-error%29%29" class="RktValLink" data-pltdoc="x">raise-result-arity-error</a></span> is
adjusted via <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> using the default
<span class="RktVal">'</span><span class="RktVal">racket</span> realm.</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-arity-error%29%29" class="RktValLink" data-pltdoc="x">raise-result-arity-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">let-values</span><span class="hspace">&nbsp;</span><span class="RktVal">2</span><span class="hspace">&nbsp;</span><span class="RktVal">"\n</span><span class="hspace">&nbsp;&nbsp;</span><span class="RktVal">in: example"</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace">&nbsp;</span><span class="RktVal">2.0</span><span class="hspace">&nbsp;</span><span class="RktVal">"three"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">let-values: result arity mismatch;</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;</span><span class="RktErr">expected number of values not received</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">expected: 2</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">received: 3</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">in: example</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">arguments...:</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;</span><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">'a</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;</span><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">2.0</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;</span><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">"three"</span></p></td></tr></table></blockquote></div></p><p class="SHistory">Added in version 6.90.0.26 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._raise-result-arity-error*))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-result-arity-error%2A%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-result-arity-error*</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">realm</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span cl
for error-message adjustments.</div></p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/private/base..rkt)._raise-syntax-error))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._raise-syntax-error%29%29" class="RktValDef RktValLink" data-pltdoc="x">raise-syntax-error</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">message</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">expr</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">sub-expr</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">extra-sources</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">message-suffix</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">#:exn</span><span class="hspace">&nbsp;</span><span class="RktVar">exn</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span
exception. Macros use this procedure to report syntax errors.</div></p><p>The <span class="RktVar">name</span> argument is usually <span class="RktVal">#f</span> when <span class="RktVar">expr</span>
is provided; it is described in more detail below. The
<span class="RktVar">message</span> is used as the main body of the error message; if
<span class="RktVar">message</span> contains newline characters, each new line should be
suitably indented (with one space at the start), and it should not end with a newline character.</p><p>The optional <span class="RktVar">expr</span> argument is the erroneous source syntax
object or S-expression (but the expression <span class="RktVal">#f</span> cannot be
represented by itself; it must be wrapped as a <a href="syntax-model.html#%28tech._syntax._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">syntax
object</span></a>). The optional <span class="RktVar">sub-expr</span> argument is a syntax object
or S-expression (again, <span class="RktVal">#f</span> cannot represent itself) within
<span class="RktVar">expr</span> that more precisely locates the error. Both may appear
in the generated error-message text if
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-source-location%29%29" class="RktValLink" data-pltdoc="x">error-print-source-location</a></span> is <span class="RktVal">#t</span>. Source location
information in the error-message text is similarly extracted from
<span class="RktVar">sub-expr</span> or <span class="RktVar">expr</span> when at least one is a syntax
object and <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-source-location%29%29" class="RktValLink" data-pltdoc="x">error-print-source-location</a></span> is <span class="RktVal">#t</span>.</p><p>If <span class="RktVar">sub-expr</span> is provided and not <span class="RktVal">#f</span>, it is used (in
syntax form) for the <span class="RktSym">exprs</span> field of the generated exception
record, else the <span class="RktVar">expr</span> is used if provided and not
<span class="RktVal">#f</span>. In either case, the syntax object is <span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._cons%29%29" class="RktValLink" data-pltdoc="x">cons</a></span>ed onto
<span class="RktVar">extra-sources</span> to produce the <span class="RktSym">exprs</span> field, or
<span class="RktVar">extra-sources</span> is used directly for <span class="RktSym">exprs</span> if neither
<span class="RktVar">expr</span> nor <span class="RktVar">sub-expr</span> is provided and not <span class="RktVal">#f</span>.
The <span class="RktVar">extra-sources</span> argument is also used directly for
<span class="RktSym">exprs</span> in the unusual case that the <span class="RktVar">sub-expr</span> or
<span class="RktVar">expr</span> that would be included in <span class="RktSym">exprs</span> cannot be
converted to a syntax object (because it contains a cycle).</p><p>The form name used in the generated error message is determined
through a combination of the <span class="RktVar">name</span>, <span class="RktVar">expr</span>, and
<span class="RktVar">sub-expr</span> arguments:</p><ul><li><p>When <span class="RktVar">name</span> is <span class="RktVal">#f</span>, and when <span class="RktVar">expr</span> is
either an identifier or a syntax pair containing an identifier as
its first element, then the form name from the error message is the
identifier&rsquo;s symbol.</p></li><li><p>When <span class="RktVar">name</span> is <span class="RktVal">#f</span> and when <span class="RktVar">expr</span> is not
an identifier or a syntax pair containing an identifier as its
first element, then the form name in the error message is
<span class="RktVal">"?"</span>.</p></li><li><p>When <span class="RktVar">name</span> is a symbol, then the symbol
is used as the form name in the generated error message.</p></li></ul><p>The <span class="RktVar">message-suffix</span> string is appended to the end of the error
message. If not <span class="RktVal">""</span>, it should normally start with a newline
and two spaces to add extra fields to the message (see
<a href="exns.html#%28part._err-msg-conventions%29" data-pltdoc="x">Error Message Conventions</a>).</p><p>If specified, <span class="RktVar">exn</span> should be a constructor or function that
has the same signature as the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax</a></span> constructor.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._raise-syntax-error%29%29" class="RktValLink" data-pltdoc="x">raise-syntax-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">"bad syntax"</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">bad</span><span class="hspace">&nbsp;</span><span class="RktVal">syntax</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">?: bad syntax</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">in: (bad syntax)</span></p></td></tr><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._raise-syntax-error%29%29" class="RktValLink" data-pltdoc="x">raise-syntax-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">"unbound identifier"</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unbound-id</span><span class="hspace">&nbsp;</span><span class="RktPn">#:exn</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax~3aunbound%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax:unbound</a></span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">?: unbound identifier</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktErr">in: unbound-id</span></p></td></tr></table></blockquote></div></p><p class="SHistory">Changed in version 6.90.0.18 of package <span class="stt">base</span>: Added the <span class="RktVar">message-suffix</span> optional argument.<br/>Changed in version 8.4.0.6: Added the <span class="RktVar">exn</span> optional argument.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._unquoted-printing-string~3f))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._unquoted-printing-string~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">unquoted-printing-string?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgr
<span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._print%29%29" class="RktValLink" data-pltdoc="x">print</a></span>s, <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._write%29%29" class="RktValLink" data-pltdoc="x">write</a></span>s, and <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._display%29%29" class="RktValLink" data-pltdoc="x">display</a></span>s the same way
that the string <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._display%29%29" class="RktValLink" data-pltdoc="x">display</a></span>s. An <a href="exns.html#%28tech._unquoted._printing._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">unquoted-printing string</span></a>
is especially useful with <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arguments-error%29%29" class="RktValLink" data-pltdoc="x">raise-arguments-error</a></span> to serve as a
field &ldquo;value&rdquo; that causes literal text to be printed as the field
content.</div></p><p>The <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._unquoted-printing-string~3f%29%29" class="RktValLink" data-pltdoc="x">unquoted-printing-string?</a></span> procedure returns <span class="RktVal">#t</span>
if <span class="RktVar">v</span> is a <a href="exns.html#%28tech._unquoted._printing._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">unquoted-printing string</span></a>, <span class="RktVal">#f</span>
otherwise. The <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._unquoted-printing-string%29%29" class="RktValLink" data-pltdoc="x">unquoted-printing-string</a></span> creates a
<a href="exns.html#%28tech._unquoted._printing._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">unquoted-printing string</span></a> value that encapsulates the string
<span class="RktVar">s</span>, and <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._unquoted-printing-string-value%29%29" class="RktValLink" data-pltdoc="x">unquoted-printing-string-value</a></span> returns the
string within a <a href="exns.html#%28tech._unquoted._printing._string%29" class="techoutside" data-pltdoc="x"><span class="techinside">unquoted-printing string</span></a>.</p><p class="SHistory">Added in version 6.10.0.2 of package <span class="stt">base</span>.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;Handling_Exceptions&quot;">10.2.3<tt>&nbsp;</tt><a name="(part._.Handling_.Exceptions)"></a>Handling Exceptions</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/private/more-scheme..rkt)._call-with-exception-handler))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._call-with-exception-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">call-with-exception-handler</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">f</span><span class="hspace">&nbsp;</span><span class="RktVar">thunk</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">f</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">thunk</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Installs <span class="RktVar">f</span> as the <a href="eval-model.html#%28tech._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">exception handler</span></a> for the
<a href="eval-model.html#%28tech._dynamic._extent%29" class="techoutside" data-pltdoc="x"><span class="techinside">dynamic extent</span></a> of the call to <span class="RktVar">thunk</span>. If an exception
is raised during the evaluation of <span class="RktVar">thunk</span> (in an extension of
the current continuation that does not have its own exception
handler), then <span class="RktVar">f</span> is applied to the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span>d value in
the continuation of the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span> call (but the continuation is
normally extended
with a <a href="eval-model.html#%28tech._continuation._barrier%29" class="techoutside" data-pltdoc="x"><span class="techinside">continuation barrier</span></a>; see <a href="eval-model.html#%28part._prompt-model%29" data-pltdoc="x">Prompts, Delimited Continuations, and Barriers</a> and
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span>).</div></p><p>Any procedure that takes one argument can be an exception handler.
Normally, an exception handler escapes from the context of the
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span> call via <span class="RktSym"><a href="cont.html#%28def._%28%28quote._~23~25kernel%29._abort-current-continuation%29%29" class="RktValLink" data-pltdoc="x">abort-current-continuation</a></span> or some other escape
mechanism. To propagate an exception to the &ldquo;previous&rdquo; exception
handler&#8212;<wbr></wbr>that is, the exception handler associated with the rest of
the continuation after the point where the called exception handler
was associated with the continuation&#8212;<wbr></wbr>an exception handler can simply
return a result instead of escaping, in which case the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span> call
propagates the value to the previous exception handler (still in the
dynamic extent of the call to <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span>, and under the same
barrier, if any). If an exception handler returns a result and no
previous handler is available, the <a href="exns.html#%28tech._uncaught._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">uncaught-exception handler</span></a>
is used.</p><p>A call to an exception handler is <span class="RktSym"><a href="breakhandler.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize-break%29%29" class="RktStxLink" data-pltdoc="x">parameterize-break</a></span>ed to
disable breaks, and it is wrapped with
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._call-with-exception-handler%29%29" class="RktValLink" data-pltdoc="x">call-with-exception-handler</a></span> to install an exception handler
that reports both the original and newly raised exceptions via the
<a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error display handler</span></a> and then escapes via the <a href="exns.html#%28tech._error._escape._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error
escape handler</span></a>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._uncaught-exception-handler))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._uncaught-exception-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">uncaught-exception-handler</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._uncaught-exception-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">uncaught-exception-handler</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">f</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">f</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> that determines an <a name="(tech._uncaught._exception._handler)"></a><span style="font-style: italic">uncaught-exception handler</span> used by
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span> when the relevant continuation has no exception handler
installed with <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._call-with-exception-handler%29%29" class="RktValLink" data-pltdoc="x">call-with-exception-handler</a></span> or
<span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span>. Unlike exception handlers installed with
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._call-with-exception-handler%29%29" class="RktValLink" data-pltdoc="x">call-with-exception-handler</a></span>, the uncaught-exception
handler must not return a value when called by <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span>; if
it returns, an exception is raised (to be handled by an exception
handler that reports both the original and newly raised exception).</div></p><p>The default uncaught-exception handler prints an error message using
the current <a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error display handler</span></a> (see <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-display-handler%29%29" class="RktValLink" data-pltdoc="x">error-display-handler</a></span>),
unless the argument to the handler is an instance of <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak~3ahang-up%29%29" class="RktValLink" data-pltdoc="x">exn:break:hang-up</a></span>.
If the argument to the handler is an instance of <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak~3ahang-up%29%29" class="RktValLink" data-pltdoc="x">exn:break:hang-up</a></span>
or <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak~3aterminate%29%29" class="RktValLink" data-pltdoc="x">exn:break:terminate</a></span>, the default uncaught-exception handler
then calls the <a href="Exiting.html#%28tech._exit._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">exit handler</span></a> with <span class="RktVal">1</span>, which normally exits
or escapes. For any argument, the default uncaught-exception handler
then escapes by calling the current <a href="exns.html#%28tech._error._escape._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error escape handler</span></a> (see
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-escape-handler%29%29" class="RktValLink" data-pltdoc="x">error-escape-handler</a></span>). The call to each handler is
<span class="RktSym"><a href="parameters.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize%29%29" class="RktStxLink" data-pltdoc="x">parameterize</a></span>d to set <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-display-handler%29%29" class="RktValLink" data-pltdoc="x">error-display-handler</a></span> to the
default <a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error display handler</span></a>, and it is <span class="RktSym"><a href="breakhandler.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize-break%29%29" class="RktStxLink" data-pltdoc="x">parameterize-break</a></span>ed
to disable breaks. The call to the <a href="exns.html#%28tech._error._escape._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error escape handler</span></a> is further
parameterized to set <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-escape-handler%29%29" class="RktValLink" data-pltdoc="x">error-escape-handler</a></span> to the default
<a href="exns.html#%28tech._error._escape._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error escape handler</span></a>; if the <a href="exns.html#%28tech._error._escape._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error escape handler</span></a> returns, then
the default <a href="exns.html#%28tech._error._escape._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error escape handler</span></a> is called.</p><p>When the current <a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error display handler</span></a> is the default handler, then the
error-display call is parameterized to install an emergency error
display handler that logs an error (see <span class="RktSym"><a href="logging.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._log-error%29%29" class="RktStxLink" data-pltdoc="x">log-error</a></span>) and never
fails.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><table cellspacing="0" cellpadding="0" class="RktBlk RForeground"><tr><td><span class="RktPn">(</span><a name="(form._((lib._racket/private/more-scheme..rkt)._with-handlers))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">with-handlers</a></span></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktVar">pred-expr</span><span class="hspace">&nbsp;</span><span class="RktVar">handler-expr</span><span class="RktPn">]</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">body</span><span class="hspace">&nbsp;</span><span class="RktMeta">...+</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Evaluates each <span class="RktVar">pred-expr</span> and <span class="RktVar">handler-expr</span> in the
order that they are specified, and then evaluates the <span class="RktVar">body</span>s
with a new exception handler during its dynamic extent.</div></p><p>The new exception handler processes an exception only if one of the
<span class="RktVar">pred-expr</span> procedures returns a true value when applied to the
exception, otherwise the exception handler is invoked from the
continuation of the <span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span> expression (by raising the
exception again). If an exception is handled by one of the
<span class="RktVar">handler-expr</span> procedures, the result of the entire
<span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span> expression is the return value of the handler.</p><p>When an exception is raised during the evaluation of <span class="RktVar">body</span>s,
each predicate procedure <span class="RktVar">pred-expr</span> is applied to the
exception value; if a predicate returns a true value, the
corresponding <span class="RktVar">handler-expr</span> procedure is invoked with the
exception as an argument. The predicates are tried in the order that
they are specified.</p><p>Before any predicate or handler procedure is invoked, the continuation
of the entire <span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span> expression is restored, but also
<span class="RktSym"><a href="breakhandler.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize-break%29%29" class="RktStxLink" data-pltdoc="x">parameterize-break</a></span>ed to disable breaks. Thus, breaks are
disabled by default during the predicate and handler procedures (see
<a href="breakhandler.html" data-pltdoc="x">Breaks</a>), and the exception handler is the one from
the continuation of the <span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span> expression.</p><p>The <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3afail~3f%29%29" class="RktValLink" data-pltdoc="x">exn:fail?</a></span> procedure is useful as a handler predicate to
catch all error exceptions. Avoid using <span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym">x</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVal">#t</span><span class="RktPn">)</span> as a
predicate, because the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak%29%29" class="RktValLink" data-pltdoc="x">exn:break</a></span> exception typically should
not be caught (unless it will be re-raised to cooperatively
break). Beware, also, of catching and discarding exceptions, because
discarding an error message can make debugging unnecessarily
difficult; instead of discarding an error message, consider logging it
via <span class="RktSym"><a href="logging.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._log-error%29%29" class="RktStxLink" data-pltdoc="x">log-error</a></span> or a logging form created by
<span class="RktSym"><a href="logging.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._define-logger%29%29" class="RktStxLink" data-pltdoc="x">define-logger</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3afail~3asyntax~3f%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._~ce~bb%29%29" class="RktStxLink" data-pltdoc="x">&#955;</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">e</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28lib._racket%2Fprivate%2Fmisc..rkt%29._displayln%29%29" class="RktValLink" data-pltdoc="x">displayln</a></span><span class="hspace">&nbsp;</span><span class="RktVal">"got a syntax error"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._raise-syntax-error%29%29" class="RktValLink" data-pltdoc="x">raise-syntax-error</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">"a syntax error"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktOut">got a syntax error</span></p></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">&gt; </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3afail~3asyntax~3f%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._~ce~bb%29%29" class="RktStxLink" data-pltdoc="x">&#955;</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">e</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28lib._racket%2Fprivate%2Fmisc..rkt%29._displayln%29%29" class="RktValLink" data-pltdoc="x">displayln</a></span><span class="hspace">&nbsp;</span><span class="RktVal">"got a syntax error"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">[</s
is called, breaks are not explicitly disabled, and the handler call is
in tail position with respect to the <span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%2A%29%29" class="RktStxLink" data-pltdoc="x">with-handlers*</a></span> form.</div></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;Configuring_Default_Handling&quot;">10.2.4<tt>&nbsp;</tt><a name="(part._.Configuring_.Default_.Handling)"></a>Configuring Default Handling</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-escape-handler))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-escape-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-escape-handler</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-escape-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-escape-handler</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">proc</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter for the <a name="(tech._error._escape._handler)"></a><span style="font-style: italic">error escape handler</span>, which takes no
arguments and escapes from the dynamic context of an exception. The
default error escape handler escapes using
<span class="RktPn">(</span><span class="RktSym"><a href="cont.html#%28def._%28%28quote._~23~25kernel%29._abort-current-continuation%29%29" class="RktValLink" data-pltdoc="x">abort-current-continuation</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="cont.html#%28def._%28%28quote._~23~25kernel%29._default-continuation-prompt-tag%29%29" class="RktValLink" data-pltdoc="x">default-continuation-prompt-tag</a></span><span class="RktPn">)</span><span class="stt"> </span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void%29%29" class="RktValLink" data-pltdoc="x">void</a></span><span class="RktPn">)</span>.</div></p><p>The error escape handler is normally called directly by an exception
handler, in a <a href="eval-model.html#%28tech._parameterization%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameterization</span></a> that sets the <a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error
display handler</span></a> and <a href="exns.html#%28tech._error._escape._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error escape handler</span></a> to the default
handlers, and it is normally <span class="RktSym"><a href="breakhandler.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize-break%29%29" class="RktStxLink" data-pltdoc="x">parameterize-break</a></span>ed to disable
breaks. To escape from a run-time error in a different context, use
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span> or <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span>.</p><p>Due to a <a href="eval-model.html#%28tech._continuation._barrier%29" class="techoutside" data-pltdoc="x"><span class="techinside">continuation barrier</span></a> around exception-handling calls,
an error escape handler cannot invoke a full continuation that was
created prior to the exception, but it can abort to a prompt (see
<span class="RktSym"><a href="cont.html#%28def._%28%28quote._~23~25kernel%29._call-with-continuation-prompt%29%29" class="RktValLink" data-pltdoc="x">call-with-continuation-prompt</a></span>) or invoke an escape
continuation (see <span class="RktSym"><a href="cont.html#%28def._%28%28quote._~23~25kernel%29._call-with-escape-continuation%29%29" class="RktValLink" data-pltdoc="x">call-with-escape-continuation</a></span>).</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-display-handler))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-display-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-display-handler</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-display-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-display-handler</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">proc</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter for the <a name="(tech._error._display._handler)"></a><span style="font-style: italic">error display handler</span>, which is called
by the default exception handler with an error message and the
exception value. More generally, the handler&rsquo;s first argument is a
string to print as an error message, and the second is a value
representing a raised exception. An error display handler can
print errors in different ways, but it should always print to the
current error port.</div></p><p>The default error display handler <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._display%29%29" class="RktValLink" data-pltdoc="x">display</a></span>s its first argument
to the current error port (determined by the
<span class="RktSym"><a href="port-ops.html#%28def._%28%28quote._~23~25kernel%29._current-error-port%29%29" class="RktValLink" data-pltdoc="x">current-error-port</a></span> parameter) and extracts a stack trace (see
<span class="RktSym"><a href="contmarks.html#%28def._%28%28quote._~23~25kernel%29._continuation-mark-set-~3econtext%29%29" class="RktValLink" data-pltdoc="x">continuation-mark-set-&gt;context</a></span>) to display from the second
argument if it is an <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn%29%29" class="RktValLink" data-pltdoc="x">exn</a></span> value but not an
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3auser%29%29" class="RktValLink" data-pltdoc="x">exn:fail:user</a></span> value.</p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p>The default error display handler in DrRacket also uses
the second argument to highlight source locations.</p></blockquote></blockquote></blockquote><p>To report a run-time error, use <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span> or procedures like
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span>, instead of calling the error display handler
directly.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-print-width))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-width%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-print-width</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._~3e~3d%2Fc%29%29" class="RktValLink" data-pltdoc="x">&gt;=/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="RktPn">)</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-width%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-print-width</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">width</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">width</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._~3e~3d%2Fc%29%29" class="RktValLink" data-pltdoc="x">&gt;=/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">3</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter whose value is used as the maximum number of characters
used to print a Racket value that is embedded in a primitive error
message.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-print-context-length))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-context-length%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-print-context-length</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-context-length%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-print-context-length</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">cnt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">cnt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter whose value is used by the default <a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error display handler</span></a>
as the maximum number of lines of context (or &ldquo;stack trace&rdquo;) to
print; a single &ldquo;...&rdquo; line is printed if more lines are available
after the first <span class="RktVar">cnt</span> lines. A <span class="RktVal">0</span> value for
<span class="RktVar">cnt</span> disables context printing entirely.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-print-source-location))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-source-location%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-print-source-location</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-source-location%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-print-source-location</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">include?</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">include?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A <a href="eval-model.html#%28tech._parameter%29" class="techoutside" data-pltdoc="x"><span class="techinside">parameter</span></a> that controls whether read and syntax error messages
include source information, such as the source line and column or the
expression. This parameter also controls the error message when a
module-defined variable is accessed before its definition is executed;
the parameter determines whether the message includes a module
name. Only the message field of an <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span>,
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax</a></span>, or <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3avariable%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract:variable</a></span>
structure is affected by the parameter. The default is <span class="RktVal">#t</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-value-~3estring-handler))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-value-~3estring-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-value-&gt;string-handler</a></span></span><span class="RktPn"></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-value-~3estring-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-value-&gt;string-handler</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">proc</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span></td></tr><tr><td><span class="hspace">&nbsp
handler</span>, which is used to print a Racket value that is embedded in a
primitive error message.</div></p><p>The integer argument to the handler specifies the maximum number of
characters that should be used to represent the value in the resulting
string. The default error value conversion handler <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._print%29%29" class="RktValLink" data-pltdoc="x">print</a></span>s
the value into a string (using the current <a href="Writing.html#%28tech._global._port._print._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">global port print
handler</span></a>; see <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._global-port-print-handler%29%29" class="RktValLink" data-pltdoc="x">global-port-print-handler</a></span>). If the printed form
is too long, the printed form is truncated and the last three
characters of the return string are set to &ldquo;...&rdquo;.</p><p>If the string returned by an error value conversion handler is longer
than requested, the string is destructively &ldquo;truncated&rdquo; by setting
the first extra position in the string to the null character. If a
non-string is returned, then the string <span class="RktVal">"..."</span> is used. If a
primitive error string needs to be generated before the handler has
returned, the default error value conversion handler is used.</p><p>Calls to an error value conversion handler are <span class="RktSym"><a href="parameters.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._parameterize%29%29" class="RktStxLink" data-pltdoc="x">parameterize</a></span>d
to re-install the default error value conversion handler, and to
enable printing of unreadable values (see <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._print-unreadable%29%29" class="RktValLink" data-pltdoc="x">print-unreadable</a></span>).</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-syntax-~3estring-handler))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-syntax-~3estring-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-syntax-&gt;string-handler</a></span></span><span class="RktPn"></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-syntax-~3estring-handler%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-syntax-&gt;string-handler</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">proc</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._
conversion handler</span>, which is used to print a syntax form that is
embedded in an error message, such as from <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._raise-syntax-error%29%29" class="RktValLink" data-pltdoc="x">raise-syntax-error</a></span>
when <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-print-source-location%29%29" class="RktValLink" data-pltdoc="x">error-print-source-location</a></span> is <span class="RktVal">#t</span>.</div></p><p>The arguments to the handler are analogous to the arguments for a
<a href="exns.html#%28tech._error._value._conversion._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error value conversion handler</span></a> as configured with
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-value-~3estring-handler%29%29" class="RktValLink" data-pltdoc="x">error-value-&gt;string-handler</a></span>, except that <span class="RktVal">#f</span> can be
provided instead of an integer for the length, meaning that the
printed form should not be truncated. The first argument is normally a
<a href="syntax-model.html#%28tech._syntax._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">syntax object</span></a>, but in the same way that
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._raise-syntax-error%29%29" class="RktValLink" data-pltdoc="x">raise-syntax-error</a></span> accepts other S-expressions, the error
syntax conversion handler must also handle representations that are
not syntax objects.</p><p class="SHistory">Added in version 8.2.0.8 of package <span class="stt">base</span>.</p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;Built-in_Exception_Types&quot;">10.2.5<tt>&nbsp;</tt><a name="(part._.Built-in_.Exception_.Types)"></a>Built-in Exception Types</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn-continuation-marks))"></a><a name="(def._((quote._~23~25kernel)._exn-message))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn))"></a><a name="(def._((quote._~23~25kernel)._exn~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn))"></a><a name="(def._((lib._racket/private/base..rkt)._exn))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn</a></span></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">message</span><span class="stt"> </span><span class="RktSym">continuation-marks</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn%29%29" class="RktValLink" data-pltdoc="x">make-exn</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">message</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">continuation-marks</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="contmarks.html#%28def._%28%28quote._~23~25kernel%29._continuation-mark-set~3f%29%29" class="RktValLink" data-pltdoc="x">continuation-mark-set?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">The base <a href="structures.html#%28tech._structure._type%29" class="techoutside" data-pltdoc="x"><span class="techinside">structure type</span></a> for exceptions. The <span class="RktSym">message</span>
field contains an error message, and the <span class="RktSym"><a href="contmarks.html#%28def._%28%28quote._~23~25kernel%29._continuation-marks%29%29" class="RktValLink" data-pltdoc="x">continuation-marks</a></span>
field contains the value produced by <span class="RktPn">(</span><span class="RktSym"><a href="contmarks.html#%28def._%28%28quote._~23~25kernel%29._current-continuation-marks%29%29" class="RktValLink" data-pltdoc="x">current-continuation-marks</a></span><span class="RktPn">)</span>
immediately before the exception was raised.</div></p><p>Exceptions raised by Racket form a hierarchy under <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn%29%29" class="RktValLink" data-pltdoc="x">exn</a></span>:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn%29%29" class="RktValLink" data-pltdoc="x">exn</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3aarity%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract:arity</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3adivide-by-zero%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract:divide-by-zero</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3anon-fixnum-result%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract:non-fixnum-result</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3acontinuation%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract:continuation</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3avariable%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract:variable</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax~3aunbound%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax:unbound</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax~3amissing-module%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax:missing-module</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread~3aeof%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read:eof</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread~3anon-char%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read:non-char</a></span></td></tr><tr><td><span class="h
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak%29%29" class="RktValLink" data-pltdoc="x">exn:break</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3acontract))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3acontract~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3acontract))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3acontract))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:contract</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:contract</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for errors from the inappropriate run-time use of a function or
syntactic form.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3acontract~3aarity))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3acontract~3aarity~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3acontract~3aarity))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3acontract~3aarity))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3aarity%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:contract:arity</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3acontract~3aarity%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:contract:arity</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised when a procedure is applied to the wrong number of arguments.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3acontract~3adivide-by-zero))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3acontract~3adivide-by-zero~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3acontract~3adivide-by-zero))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3acontract~3adivide-by-zero))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3adivide-by-zero%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:contract:divide-by-zero</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3acontract~3adivi
continuation barrier.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn~3afail~3acontract~3avariable-id))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3acontract~3avariable))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3acontract~3avariable~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3acontract~3avariable))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3acontract~3avariable))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3avariable%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:contract:variable</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">id</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3acontract~3avariable%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:contract:variable</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">id</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for a reference to a not-yet-defined <a href="eval-model.html#%28tech._top._level._variable%29" class="techoutside" data-pltdoc="x"><span class="techinside">top-level variable</span></a>
or <a href="eval-model.html#%28tech._module._level._variable%29" class="techoutside" data-pltdoc="x"><span class="techinside">module-level variable</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn~3afail~3asyntax-exprs))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3asyntax))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3asyntax~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3asyntax))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3asyntax))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:syntax</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">exprs</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3asyntax%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:syntax</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">exprs</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax~3f%29%29" class="RktValLink" data-pltdoc="x">syntax?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for a syntax error that is not a <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> error. The
<span class="RktSym">exprs</span> indicate the relevant source expressions,
least-specific to most-specific.</div></p><p>This structure type implements the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._prop~3aexn~3asrclocs%29%29" class="RktValLink" data-pltdoc="x">prop:exn:srclocs</a></span> property.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3asyntax~3aunbound))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3asyntax~3aunbound~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3asyntax~3aunbound))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3asyntax~3aunbound))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax~3aunbound%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:syntax:unbound</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3asyntax~3aunbound%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:syntax:unbound</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised by <span class="RktSym"><a href="__top.html#%28form._%28%28quote._~23~25kernel%29._~23~25top%29%29" class="RktStxLink" data-pltdoc="x">#%top</a></span> or <span class="RktSym"><a href="set_.html#%28form._%28%28quote._~23~25kernel%29._set%21%29%29" class="RktStxLink" data-pltdoc="x">set!</a></span> for an
unbound identifier within a module.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn~3afail~3asyntax~3amissing-module-path))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3asyntax~3amissing-module))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3asyntax~3amissing-module~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3asyntax~3amissing-module))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3asyntax~3amissing-module))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax~3amissing-module%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:syntax:missing-module</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3asyntax%29%29" class="RktValLink" data-pltdoc="x">exn:fail:syntax</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">path</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3asyntax~3amissing-module%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:syntax:missing-module</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">path</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._module-path~3f%29%29" class="RktValLink" data-pltdoc="x">module-path?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Raised by the default <a href="Module_Names_and_Loading.html#%28tech._module._name._resolver%29" class="techoutside" data-pltdoc="x"><span class="techinside">module name resolver</span></a> or default
<a href="eval.html#%28tech._load._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">load handler</span></a> to report a module path&#8212;<wbr></wbr>a reported in the
<span class="RktSym">path</span> field&#8212;<wbr></wbr>whose implementation file cannot be
found.</div></p><p>The default <a href="Module_Names_and_Loading.html#%28tech._module._name._resolver%29" class="techoutside" data-pltdoc="x"><span class="techinside">module name resolver</span></a> raises this exception only
when it is given a syntax object as its second argument, and the
default <a href="eval.html#%28tech._load._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">load handler</span></a> raises this exception only when the value
of <span class="RktSym"><a href="Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._current-module-path-for-load%29%29" class="RktValLink" data-pltdoc="x">current-module-path-for-load</a></span> is a syntax object (in which
case both the <span class="RktSym">exprs</span> field and the <span class="RktSym">path</span> field
are determined by the syntax object).</p><p>This structure type implements the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._prop~3aexn~3amissing-module%29%29" class="RktValLink" data-pltdoc="x">prop:exn:missing-module</a></span> property.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn~3afail~3aread-srclocs))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3aread))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3aread~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3aread))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3aread))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:read</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">srclocs</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:read</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">srclocs</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._srcloc~3f%29%29" class="RktValLink" data-pltdoc="x">srcloc?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for a <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> error. The <span class="RktSym">srclocs</span> indicate the
relevant source expressions.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3aread~3aeof))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3aread~3aeof~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3aread~3aeof))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3aread~3aeof))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread~3aeof%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:read:eof</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3aread~3aeof%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:read:eof</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for a <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> error, specifically when the error is due
to an unexpected end-of-file.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3aread~3anon-char))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3aread~3anon-char~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3aread~3anon-char))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3aread~3anon-char))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread~3anon-char%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:read:non-char</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aread%29%29" class="RktValLink" data-pltdoc="x">exn:fail:read</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3aread~3anon-char%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:read:non-char</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for a <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span> error, specifically when the error is due
to an unexpected non-character (i.e., &ldquo;special&rdquo;) element in the
input stream.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3afilesystem))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3afilesystem~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3afilesystem))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3afilesystem))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:filesystem</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3afilesystem%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:filesystem</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for an error related to the filesystem (such as a file not
found).</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3afilesystem~3aexists))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3afilesystem~3aexists~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3afilesystem~3aexists))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3afilesystem~3aexists))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem~3aexists%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:filesystem:exists</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem%29%29" class="RktValLink" data-pltdoc="x">exn:fail:filesystem</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3afilesystem~3aexists%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:filesystem:exists</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for an error when attempting to create a file that exists
already.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3afilesystem~3aversion))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3afilesystem~3aversion~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3afilesystem~3aversion))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3afilesystem~3aversion))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem~3aversion%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:filesystem:version</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem%29%29" class="RktValLink" data-pltdoc="x">exn:fail:filesystem</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3afilesystem~3aversion%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:filesystem:version</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for a version-mismatch error when loading an extension.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn~3afail~3afilesystem~3aerrno-errno))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3afilesystem~3aerrno))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3afilesystem~3aerrno~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3afilesystem~3aerrno))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3afilesystem~3aerrno))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem~3aerrno%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:filesystem:errno</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem%29%29" class="RktValLink" data-pltdoc="x">exn:fail:filesystem</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">errno</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._
available. The symbol part of an <span class="RktSym">errno</span> field indicates the
category of the error code: <span class="RktVal">'</span><span class="RktVal">posix</span> indicates a C/Posix
<span class="stt">errno</span> value, <span class="RktVal">'</span><span class="RktVal">windows</span> indicates a Windows system error
code (under Windows, only), and <span class="RktVal">'</span><span class="RktVal">gai</span> indicates a
<span class="stt">getaddrinfo</span> error code (which shows up only in
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3anetwork~3aerrno%29%29" class="RktValLink" data-pltdoc="x">exn:fail:network:errno</a></span> exceptions for operations that resolve
hostnames, but is allowed in <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem~3aerrno%29%29" class="RktValLink" data-pltdoc="x">exn:fail:filesystem:errno</a></span>
instances for consistency).</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><span class="nobreak"><a name="(def._((quote._~23~25kernel)._exn~3afail~3afilesystem~3amissing-module-path))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3afilesystem~3amissing-module))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3afilesystem~3amissing-module~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3afilesystem~3amissing-module))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3afilesystem~3amissing-module))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem~3amissing-module%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:filesystem:missing-module</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem%29%29" class="RktValLink" data-pltdoc="x">exn:fail:filesystem</a></span></span></td></tr><tr><td><span class="hspace">&nbsp;</span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktPn">(</span><span class="nobreak"><span class="RktSym">path</span><span class="RktPn">)</span></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3afilesystem~3amissing-module%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:filesystem:missing-module</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">path</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._module-path~3f%29%29" class="RktValLink" data-pltdoc="x">module-path?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Raised by the default <a href="Module_Names_and_Loading.html#%28tech._module._name._resolver%29" class="techoutside" data-pltdoc="x"><span class="techinside">module name resolver</span></a> or default
<a href="eval.html#%28tech._load._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">load handler</span></a> to report a module path&#8212;<wbr></wbr>a reported in the
<span class="RktSym">path</span> field&#8212;<wbr></wbr>whose implementation file cannot be
found.</div></p><p>The default <a href="Module_Names_and_Loading.html#%28tech._module._name._resolver%29" class="techoutside" data-pltdoc="x"><span class="techinside">module name resolver</span></a> raises this exception only
when it is <span class="emph">not</span> given a syntax object as its second argument, and the
default <a href="eval.html#%28tech._load._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">load handler</span></a> raises this exception only when the value
of <span class="RktSym"><a href="Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._current-module-path-for-load%29%29" class="RktValLink" data-pltdoc="x">current-module-path-for-load</a></span> is <span class="emph">not</span> a syntax object.</p><p>This structure type implements the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._prop~3aexn~3amissing-module%29%29" class="RktValLink" data-pltdoc="x">prop:exn:missing-module</a></span> property.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3anetwork))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3anetwork~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3anetwork))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3anetwork))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3anetwork%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:network</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3anetwork%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:network</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for TCP and UDP errors.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn~3afail~3anetwork~3aerrno-errno))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3anetwork~3aerrno))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3anetwork~3aerrno~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3anetwork~3aerrno))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3anetwork~3aerrno))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3anetwork~3aerrno%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:network:errno</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3anetwork%29%29" class="RktValLink" data-pltdoc="x">exn:fail:network</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span cl
available, where the <span class="RktSym">errno</span> field is as for
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3afilesystem~3aerrno%29%29" class="RktValLink" data-pltdoc="x">exn:fail:filesystem:errno</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3aout-of-memory))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3aout-of-memory~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3aout-of-memory))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3aout-of-memory))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aout-of-memory%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:out-of-memory</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3aout-of-memory%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:out-of-memory</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for an error due to insufficient memory, in cases where sufficient
memory is at least available for raising the exception.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3aunsupported))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3aunsupported~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3aunsupported))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3aunsupported))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3aunsupported%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:unsupported</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3aunsupported%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:unsupported</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for an error due to an unsupported feature on the current
platform or configuration.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3afail~3auser))"></a><a name="(def._((quote._~23~25kernel)._exn~3afail~3auser~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3afail~3auser))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3afail~3auser))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3auser%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:fail:user</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail~3auser%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail:user</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised for errors that are intended to be seen by end users. In
particular, the default error printer does not show the program
context when printing the error message.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._exn~3abreak-continuation))"></a><a name="(def._((lib._racket/private/base..rkt)._make-exn~3abreak))"></a><a name="(def._((quote._~23~25kernel)._exn~3abreak~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3abreak))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3abreak))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:break</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn%29%29" class="RktValLink" data-pltdoc="x">exn</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">continuation</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3abreak%29%29" class="RktValLink" data-pltdoc="x">make-exn:break</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">continuation</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="cont.html#%28def._%28%28quote._~23~25kernel%29._continuation~3f%29%29" class="RktValLink" data-pltdoc="x">continuation?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Raised asynchronously (when enabled) in response to a break request.
The <span class="RktSym">continuation</span> field can be used to resume the interrupted
computation in the <a href="exns.html#%28tech._uncaught._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">uncaught-exception handler</span></a> or
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._call-with-exception-handler%29%29" class="RktValLink" data-pltdoc="x">call-with-exception-handler</a></span> (but <span class="emph">not</span>
<span class="RktSym"><a href="exns.html#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._with-handlers%29%29" class="RktStxLink" data-pltdoc="x">with-handlers</a></span> because it escapes from the exception context
before evaluating any predicates or handlers).</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3abreak~3ahang-up))"></a><a name="(def._((quote._~23~25kernel)._exn~3abreak~3ahang-up~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3abreak~3ahang-up))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3abreak~3ahang-up))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak~3ahang-up%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:break:hang-up</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak%29%29" class="RktValLink" data-pltdoc="x">exn:break</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3abreak~3ahang-up%29%29" class="RktValLink" data-pltdoc="x">make-exn:break:hang-up</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised asynchronously for hang-up breaks. The default
<a href="exns.html#%28tech._uncaught._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">uncaught-exception handler</span></a> reacts to this exception type by
calling the <a href="Exiting.html#%28tech._exit._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">exit handler</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((lib._racket/private/base..rkt)._make-exn~3abreak~3aterminate))"></a><a name="(def._((quote._~23~25kernel)._exn~3abreak~3aterminate~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3aexn~3abreak~3aterminate))"></a><a name="(def._((lib._racket/private/base..rkt)._exn~3abreak~3aterminate))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak~3aterminate%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:break:terminate</a></span></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3abreak%29%29" class="RktValLink" data-pltdoc="x">exn:break</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:extra-constructor-name</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3abreak~3aterminate%29%29" class="RktValLink" data-pltdoc="x">make-exn:break:terminate</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">#:transparent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Raised asynchronously for termination-request breaks. The default
<a href="exns.html#%28tech._uncaught._exception._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">uncaught-exception handler</span></a> reacts to this exception type by
calling the <a href="Exiting.html#%28tech._exit._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">exit handler</span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((quote._~23~25kernel)._prop~3aexn~3asrclocs))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._prop~3aexn~3asrclocs%29%29" class="RktValDef RktValLink" data-pltdoc="x">prop:exn:srclocs</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="structprops.html#%28def._%28%28quote._~23~25kernel%29._struct-type-property~3f%29%29" class="RktValLink" data-pltdoc="x">struct-type-property?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">A property that identifies structure types that provide a list of
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span> values. The property is normally attached to structure
types used to represent exception information.</div></p><p>The property value must be a procedure that accepts a single
value&#8212;<wbr></wbr>the structure type instance from which to extract source
locations&#8212;<wbr></wbr>and returns a list of <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span>s. Some <a href="exns.html#%28tech._error._display._handler%29" class="techoutside" data-pltdoc="x"><span class="techinside">error
display handlers</span></a> use only the first returned location.</p><p><div class="SIntrapara">As an example,
</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><a href="https://download.racket-lang.org/releases/8.6/doc/local-redirect/index.html?doc=guide&amp;rel=Module_Syntax.html%23%2528part._hash-lang%2529&amp;version=8.6" class="RktModLink Sq" data-pltdoc="x"><span class="RktMod">#lang</span></a><span class="RktMeta"></span><span class="hspace">&nbsp;</span><span class="RktMeta"></span><a href="index.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket</span></a><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta">&#160;</span></td></tr><tr><td><span class="RktMeta"></span><span class="RktCmt">;;</span><span class="hspace">&nbsp;</span><span class="RktCmt">We</span><span class="hspace">&nbsp;</span><span class="RktCmt">create</span><span class="hspace">&nbsp;</span><span class="RktCmt">a</span><span class="hspace">&nbsp;</span><span class="RktCmt">structure</span><span class="hspace">&nbsp;</span><span class="RktCmt">that</span><span class="hspace">&nbsp;</span><span class="RktCmt">supports</span><span class="hspace">&nbsp;</span><span class="RktCmt">the</span><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta"></span><span class="RktCmt">;;</span><span class="hspace">&nbsp;</span><span class="RktCmt">prop:exn:srcloc</span><span class="hspace">&nbsp;</span><span class="RktCmt">protocol.</span><span class="hspace">&nbsp;&nbsp;</span><span class="RktCmt">It</span><span class="hspace">&nbsp;</span><span class="RktCmt">carries</span><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta"></span><span class="RktCmt">;;</span><span class="hspace">&nbsp;</span><span class="RktCmt">with</span><span class="hspace">&nbsp;</span><span class="RktCmt">it</span><span class="hspace">&nbsp;</span><span class="RktCmt">the</span><span class="hspace">&nbsp;</span><span class="RktCmt">location</span><span class="hspace">&nbsp;</span><span class="RktCmt">of</span><span class="hspace">&nbsp;</span><span class="RktCmt">the</span><span class="hspace">&nbsp;</span><span class="RktCmt">syntax</span><span class="hspace">&nbsp;</span><span class="RktCmt">that</span><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta"></span><span class="RktCmt">;;</span><span class="hspace">&nbsp;</span><span class="RktCmt">is</span><span class="hspace">&nbsp;</span><span class="RktCmt">guilty.</span><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta"></span><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span><span class="RktMeta"></span><span class="hspace">&nbsp;</span><span class="RktMeta"></span><span class="RktSym">exn:fail:he-who-shall-not-be-named</span><span class="RktMeta"></span><span class="hspace">&nbsp;</span><span class="RktMeta"></span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail%29%29" class="RktValLink" data-pltdoc="x">exn:fail</a></span><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktMeta"></span><span class="RktPn">(</span><span class="RktSym">a-srcloc</span><span class="RktPn">)</span><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktMeta"></span><span class="RktPn">#:property</span><span class="RktMeta"></span><span class="hspace">&nbsp;</span><span class="RktMeta"></span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._prop~3aexn~3asrclocs%29%29" class="RktValLink" data-pltdoc="x">prop:exn:srclocs</a></span><span class="RktMeta"></span></td></tr><tr><td><span class="RktMeta"></span><span class="hspace">&nbsp;&nbsp;</span><span class="RktMeta"></span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="Rkt
property, <span class="RktVal">#f</span> otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._exn~3asrclocs-accessor))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3asrclocs-accessor%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:srclocs-accessor</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3asrclocs~3f%29%29" class="RktValLink" data-pltdoc="x">exn:srclocs?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3asrclocs~3f%29%29" class="RktValLink" data-pltdoc="x">exn:srclocs?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span>-getting procedure associated with <span class="RktVar">v</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span></td><td><span class="hspace">&nbsp;</span></td><td><a name="(def._((quote._~23~25kernel)._srcloc-span))"></a><a name="(def._((quote._~23~25kernel)._srcloc-position))"></a><a name="(def._((quote._~23~25kernel)._srcloc-column))"></a><a name="(def._((quote._~23~25kernel)._srcloc-line))"></a><a name="(def._((quote._~23~25kernel)._srcloc-source))"></a><a name="(def._((lib._racket/private/base..rkt)._make-srcloc))"></a><a name="(def._((quote._~23~25kernel)._srcloc~3f))"></a><a name="(def._((quote._~23~25kernel)._struct~3asrcloc))"></a><a name="(def._((lib._racket/private/base..rkt)._srcloc))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValDef RktValLink" data-pltdoc="x">srcloc</a></span></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">source</span><span class="stt"> </span><span class="RktSym">line</span><span class="stt"> </span><span class="RktSym">column</span><span class="stt"> </span><span class=
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span> structure. More generally, a source location has the
same information as a <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span> structure, but potentially
represented or accessed differently. For example, source-location
information is accessed from a <a href="syntax-model.html#%28tech._syntax._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">syntax object</span></a> with functions
like <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-source%29%29" class="RktValLink" data-pltdoc="x">syntax-source</a></span> and <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-line%29%29" class="RktValLink" data-pltdoc="x">syntax-line</a></span>, while
<span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-~3esyntax%29%29" class="RktValLink" data-pltdoc="x">datum-&gt;syntax</a></span> accepts a source location as a list, vector, or
another syntax object. For ports, a combination of
<span class="RktSym"><a href="inspectors.html#%28def._%28%28quote._~23~25kernel%29._object-name%29%29" class="RktValLink" data-pltdoc="x">object-name</a></span> and <span class="RktSym"><a href="linecol.html#%28def._%28%28quote._~23~25kernel%29._port-next-location%29%29" class="RktValLink" data-pltdoc="x">port-next-location</a></span> provides location
information, especially in a port for which counting has been enabled
through <span class="RktSym"><a href="linecol.html#%28def._%28%28quote._~23~25kernel%29._port-count-lines%21%29%29" class="RktValLink" data-pltdoc="x">port-count-lines!</a></span>.</div></p><p>The fields of a <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span> instance are as follows:</p><ul><li><p><span class="RktSym">source</span> &#8212;<wbr></wbr> An arbitrary value identifying the source,
often a path (see <a href="pathutils.html" data-pltdoc="x">Paths</a>).</p></li><li><p><span class="RktSym">line</span> &#8212;<wbr></wbr> The line number (counts from 1) or
<span class="RktVal">#f</span> (unknown).</p></li><li><p><span class="RktSym">column</span> &#8212;<wbr></wbr> The column number (counts from 0) or
<span class="RktVal">#f</span> (unknown).</p></li><li><p><span class="RktSym">position</span> &#8212;<wbr></wbr> The starting position (counts from 1) or
<span class="RktVal">#f</span> (unknown).</p></li><li><p><span class="RktSym">span</span> &#8212;<wbr></wbr> The number of covered positions (counts from
0) or <span class="RktVal">#f</span> (unknown).</p></li></ul><p>See <a href="printing.html#%28part._print-compiled%29" data-pltdoc="x">Printing Compiled Code</a> for information about the treatment of
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._srcloc%29%29" class="RktValLink" data-pltdoc="x">srcloc</a></span> values that are embedded in compiled code.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._srcloc-~3estring))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._srcloc-~3estring%29%29" class="RktValDef RktValLink" data-pltdoc="x">srcloc-&gt;string</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">srcloc</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">srcloc</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._srcloc~3f%29%29" class="RktValLink" data-pltdoc="x">srcloc?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Formats <span class="RktVar">srcloc</span> as a string suitable for error reporting. A
path source in <span class="RktVar">srcloc</span> is shown relative to the value of
<span class="RktSym"><a href="Filesystem.html#%28def._%28%28quote._~23~25kernel%29._current-directory-for-user%29%29" class="RktValLink" data-pltdoc="x">current-directory-for-user</a></span>. The result is <span class="RktVal">#f</span> if
<span class="RktVar">srcloc</span> does not contain enough information to format a
string.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((quote._~23~25kernel)._prop~3aexn~3amissing-module))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._prop~3aexn~3amissing-module%29%29" class="RktValDef RktValLink" data-pltdoc="x">prop:exn:missing-module</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="structprops.html#%28def._%28%28quote._~23~25kernel%29._struct-type-property~3f%29%29" class="RktValLink" data-pltdoc="x">struct-type-property?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">A property that identifies structure types that provide a module path
for a load that fails because a module is not found.</div></p><p>The property value must be a procedure that accepts a single
value&#8212;<wbr></wbr>the structure type instance from which to extract source
locations&#8212;<wbr></wbr>and returns a <a href="Module_Names_and_Loading.html#%28tech._module._path%29" class="techoutside" data-pltdoc="x"><span class="techinside">module path</span></a>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._exn~3amissing-module~3f))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3amissing-module~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:missing-module?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> has the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._prop~3aexn~3amissing-module%29%29" class="RktValLink" data-pltdoc="x">prop:exn:missing-module</a></span>
property, <span class="RktVal">#f</span> otherwise.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._exn~3amissing-module-accessor))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3amissing-module-accessor%29%29" class="RktValDef RktValLink" data-pltdoc="x">exn:missing-module-accessor</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3amissing-module~3f%29%29" class="RktValLink" data-pltdoc="x">exn:missing-module?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="Module_Names_and_Loading.html#%28def._%28%28quote._~23~25kernel%29._module-path~3f%29%29" class="RktValLink" data-pltdoc="x">module-path?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._exn~3asrclocs~3f%29%29" class="RktValLink" data-pltdoc="x">exn:srclocs?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the <a href="Module_Names_and_Loading.html#%28tech._module._path%29" class="techoutside" data-pltdoc="x"><span class="techinside">module path</span></a>-getting procedure associated with <span class="RktVar">v</span>.</div></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;Additional_Exception_Functions&quot;">10.2.6<tt>&nbsp;</tt><a name="(part._.Additional_.Exception_.Functions)"></a><a name="(mod-path._racket/exn)"></a>Additional Exception Functions</h5><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="exns.html#%28mod-path._racket%2Fexn%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/exn</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <a href="https://pkgs.racket-lang.org/package/base" title="Install this package using `raco pkg install base`"><span class="stt">base</span></a></span></td></tr></table></div><div class="SIntrapara">The bindings documented in this section are provided by the <a href="exns.html#%28mod-path._racket%2Fexn%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/exn</span></a> library, not <a href="index.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/base</span></a> or <a href="index.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket</span></a>.</div></p><p class="SHistory">Added in version 6.3 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInn
collects and returns the output from the current
<span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-display-handler%29%29" class="RktValLink" data-pltdoc="x">error-display-handler</a></span><span class="RktPn">)</span>; otherwise, simply converts
<span class="RktVar">exn</span> to a string using <span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._format%29%29" class="RktValLink" data-pltdoc="x">format</a></span><span class="stt"> </span><span class="RktVal">"~s\n"</span><span class="stt"> </span><span class="RktVar">exn</span><span class="RktPn">)</span>.</div></p><h5 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;err-realm&quot;">10.2.7<tt>&nbsp;</tt><a name="(part._err-realm)"></a>Realms and Error Message Adjusters</h5><p>A <a name="(tech._realm)"></a><span style="font-style: italic">realm</span> identifies a convention for naming functions and
specifying contracts for function arguments and results. Realms are
intended to help improve layering and interoperability among languages
that are implemented on top of Racket.</p><p>Realms primarily enable a language to recognize and rewrite error
messages that are generated by lower layers of an implementation. For
example, a language&rsquo;s implementation of &ldquo;arrays&rdquo; might use Racket
vectors directly, but when an object-type or primitive bounds check
fails for a vector, the generated error message mentions &ldquo;vector&rdquo;
and possibly a contract like <span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector~3f%29%29" class="RktValLink" data-pltdoc="x">vector?</a></span> and a function name like
<span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector-ref%29%29" class="RktValLink" data-pltdoc="x">vector-ref</a></span>. Since these error messages are identified as
being from the <span class="RktVal">'</span><span class="RktVal">racket/primitive</span> realm, a language
implementation can look for <span class="RktVal">'</span><span class="RktVal">racket/primitive</span> to detect and
rewrite error messages with minimal danger of mangling error messages
from other parts of an application (possibly implemented in the new
language) that happen to use the word &ldquo;vector.&rdquo;</p><p>Each procedure and each module also has a realm. A procedure&rsquo;s realm
is relevant, for example, when it is applied to the wrong number of
arguments; in that case, the arity-error message itself is from the
<span class="RktVal">'</span><span class="RktVal">racket/primitive</span> realm, but the error message also should
include the name of the procedure, which can be from some different
realm. Along similar lines, <span class="RktSym"><a href="contmarks.html#%28def._%28%28quote._~23~25kernel%29._continuation-mark-set-~3econtext%29%29" class="RktValLink" data-pltdoc="x">continuation-mark-set-&gt;context</a></span>
can report the realm associated with (the procedure for) each frame in
a continuation, which might be useful to identify boundary crossings.</p><p>The construction of an error message must cooperate explicitly with
error-message adjusting. The most basic may to cooperate is through
functions like <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> and
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-contract-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-contract-&gt;adjusted-string</a></span>, which run error-message
adjusters via the <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._current-error-message-adjuster%29%29" class="RktValLink" data-pltdoc="x">current-error-message-adjuster</a></span> parameter
and other adjusters associated with the current continuation using
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-adjuster-key%29%29" class="RktValLink" data-pltdoc="x">error-message-adjuster-key</a></span> as a <a href="eval-model.html#%28tech._continuation._mark%29" class="techoutside" data-pltdoc="x"><span class="techinside">continuation-mark</span></a> key.
Functions like <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%29%29" class="RktValLink" data-pltdoc="x">raise-argument-error</a></span> and
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%29%29" class="RktValLink" data-pltdoc="x">raise-arity-error</a></span> use <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span>
and <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-contract-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-contract-&gt;adjusted-string</a></span> with the default realm,
<span class="RktVal">'</span><span class="RktVal">racket</span>. Functions like <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-argument-error%2A%29%29" class="RktValLink" data-pltdoc="x">raise-argument-error*</a></span> and
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise-arity-error%2A%29%29" class="RktValLink" data-pltdoc="x">raise-arity-error*</a></span> accept an explicit realm argument.</p><p>Not all error functions automatically cooperate with error-message
adjusting. For example, the <span class="RktSym">raise-reader-error</span> and
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._raise-syntax-error%29%29" class="RktValLink" data-pltdoc="x">raise-syntax-error</a></span> functions do not call adjusters, because
they report errors that are intimately tied to syntax (and, along
those lines, errors of a more static nature).</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-message-~3eadjusted-string))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name-realm</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">message</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">message-realm</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name-realm</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">message</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">message-realm</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr></table></blockq
and then <span class="RktVar">message</span> to generate an error-message string, but
first giving error-message adjusters a chance to adjust <span class="RktVar">name</span>
and/or <span class="RktVar">message</span>.</div></p><p>Any adjuster functions associated with the current continuation as a
<a href="eval-model.html#%28tech._continuation._mark%29" class="techoutside" data-pltdoc="x"><span class="techinside">continuation mark</span></a> with <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-adjuster-key%29%29" class="RktValLink" data-pltdoc="x">error-message-adjuster-key</a></span> are
run first; the adjusters are run in order from shallowest to deepest.
Then, the adjuster value of <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._current-error-message-adjuster%29%29" class="RktValLink" data-pltdoc="x">current-error-message-adjuster</a></span> is
used.</p><p>Each adjuster is tried with the <span class="RktVal">'</span><span class="RktVal">message</span> protocol, first. If
the adjuster responds with <span class="RktVal">#f</span> for <span class="RktVal">'</span><span class="RktVal">message</span>, then the
<span class="RktVal">'</span><span class="RktVal">name</span> protocol is tried. See
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._current-error-message-adjuster%29%29" class="RktValLink" data-pltdoc="x">current-error-message-adjuster</a></span> for information on the
protocols. An adjuster that responds with <span class="RktVal">#f</span> for both is
skipped, as is any value associated as continuation mark using
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-adjuster-key%29%29" class="RktValLink" data-pltdoc="x">error-message-adjuster-key</a></span> where the value is not a procedure
that accepts one argument. In addition, the <span class="RktVal">'</span><span class="RktVal">name</span> protocol is
skipped if the (possibly adjusted) <span class="RktVar">name</span> is <span class="RktVal">#f</span>.</p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._error-contract-~3eadjusted-string))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-contract-~3eadjusted-string%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-contract-&gt;adjusted-string</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">contract-str</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">contract-realm</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">contract-str</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">contract-realm</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Analogous to <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span>, but for just the
contract part of an error message. The result string is typically
incorporated into a larger error message that may then be adjusted
further.</div></p><p>Adjustment of contract string uses the <span class="RktVal">'</span><span class="RktVal">contract</span> protocol as
described for <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._current-error-message-adjuster%29%29" class="RktValLink" data-pltdoc="x">current-error-message-adjuster</a></span>.</p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((quote._~23~25kernel)._current-error-message-adjuster))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._current-error-message-adjuster%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-error-message-adjuster</a></span></span><span class="RktPn"></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure~3f%29%29" class="RktValLink" data-pltdoc="x">procedure?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._current-error-message-adjuster%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-error-message-adjuster</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">proc</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure~3f%29%29" class="RktValLink" data-pltdoc="x">procedure?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A <a href="eval-model.html#%28tech._parameter%29" class="techoutside"
applied after any adjusters associated to the current continuation via
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-adjuster-key%29%29" class="RktValLink" data-pltdoc="x">error-message-adjuster-key</a></span>.</div></p><p>An adjuster procedure receives a symbol identifying a protocol, and it
must return either <span class="RktVal">#f</span> or a procedure for performing
adjustments through that protocol. The following protocols are
currently defined, but more may be added in the future:</p><ul><li><p><span class="RktVal">'</span><span class="RktVal">name</span>: the procedure receives two arguments, a name
symbol and a realm symbol; it returns an adjusted name symbol
and an adjusted realm symbol.</p></li><li><p><span class="RktVal">'</span><span class="RktVal">message</span>: the procedure receives four arguments: a
name symbol or <span class="RktVal">#f</span> (which means that no name will be
prefixed on the message), a name-realm symbol, an message
string, and a message-realm symbol; it returns four adjusted
values.</p></li><li><p><span class="RktVal">'</span><span class="RktVal">contract</span>: the procedure receives two arguments, a
contract string and a realm symbol; it returns an adjusted
contract string and an adjusted realm symbol.</p></li></ul><p>A new library or language can introduce additional mode symbols, too.
To avoid conflicts, prefix the mode symbol with a collection or
library name followed by <span class="RktInBG"><span class="hspace"></span><span class="RktIn">/</span><span class="hspace"></span></span>.</p><p>If an adjuster procedure returns <span class="RktVal">#f</span> for a protocol, it&rsquo;s the
same as returning a function that performs no adjustment and returns
its arguments. The default value of this parameter returns <span class="RktVal">#f</span>
for any symbol argument except the protocols listed above, for which
it returns a procedure that checks its arguments and returns them with
no adjustment.</p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((quote._~23~25kernel)._error-message-adjuster-key))"></a><span title="Provided from: racket/base, racket | Package: base"><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-adjuster-key%29%29" class="RktValDef RktValLink" data-pltdoc="x">error-message-adjuster-key</a></span></span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">An <a href="symbols.html#%28tech._uninterned%29" class="techoutside" data-pltdoc="x"><span class="techinside">uninterned</span></a> symbol intended for use as a <a href="eval-model.html#%28tech._continuation._mark%29" class="techoutside" data-pltdoc="x"><span class="techinside">continuation
mark</span></a> key with an error-adjuster procedure value. An error adjuster
associated with the key should follow the same protocol as a value of
<span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._current-error-message-adjuster%29%29" class="RktValLink" data-pltdoc="x">current-error-message-adjuster</a></span>.</div></p><p>See <span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error-message-~3eadjusted-string%29%29" class="RktValLink" data-pltdoc="x">error-message-&gt;adjusted-string</a></span> for a description of how
marks using this key are can adjust error messages.</p><p class="SHistory">Added in version 8.4.0.2 of package <span class="stt">base</span>.</p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" id="searchbox" type="text" tabindex="1" placeholder="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;8.6&quot;, &quot;../&quot;);"/></form>&nbsp;&nbsp;<a href="https://docs.racket-lang.org/index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;8.6&quot;);">top</a><span class="tocsettoggle">&nbsp;&nbsp;<a href="javascript:void(0);" title="show/hide table of contents" onclick="TocsetToggle();">contents</a></span></span><span class="navright">&nbsp;&nbsp;<a href="values.html" title="backward to &quot;10.1 Multiple Values&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="control.html" title="up to &quot;10 Control Flow&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="Delayed_Evaluation.html" title="forward to &quot;10.3 Delayed Evaluation&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>