projman/hlp/fr/tcl/catch.htm

35 lines
3.1 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<HTML><HEAD>
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
</HEAD>
<BODY>
<div><H3><b>catch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commandes Internes Tcl</b></H3></div>
<HR ALIGN="center">
<div><b>NOM</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">catch - Evalue un script et intercepte les renvois d'exceptions
</div><br>
<div><b>SYNTHESE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><b>catch</b><i> script </i>?<i>varName</i>?
</div> <br>
<div><b>DESCRIPTION</b></div> <br>
<div ALIGN="LEFT" style="margin-left: 51px;">La commande <b>catch</b> peut <20>tre employ<6F>e pour empecher les erreurs de faire <20>chouer l'<27>valuation d'une commande. <b>Catch</b> appelle l'interpr<70>teur Tcl r<>cursivement pour ex<65>cuter <i>script</i>, et retourne toujours sans lever une erreur, ind<6E>pendemment de toute erreur produite pendant l'ex<65>cution de <i>script</i>. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Si <i>script</i> l<>ve une erreur, <b>catch</b> renverra une valeur enti<74>re diff<66>rente de z<>ro correspondant <20> un des code de retours d'exceptions (voir tcl.h pour la d<>finitions des codes). Si l'argument <i>varName</i> est fourni, alors le message d'erreur de l'<27>valuation de <i>script</i> est affect<63> <20> la variable d<>signe par <i>varName</i>. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Si <i>script</i> ne l<>ve pas d'erreur, <b>catch</b> renverra 0 (TCL_OK) et la valeur renvoy<6F>e par <i>script</i> est affect<63>e <20> la variable. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Notez que <b>catch</b> intercepte toutes exceptions, incluant celles g<>n<EFBFBD>r<EFBFBD>es par <A HREF="92.htm"><b>break</b></A> et <A HREF="99.htm"><b>continue</b></A> aussi bien que les erreurs. Les seules erreurs qui ne sont pas intercept<70>es sont les erreurs de syntaxe trouv<75>es quand le script est compil<69>. Ceci est du <20> ce que la commande catch n'intercepte les erreurs qu'<27> l'ex<65>cution. Quand l'instruction catch est compil<69>e, le script est aussi compil<69> et toutes les erreurs de syntaxe g<>n<EFBFBD>rent une erreur Tcl. <br>
</div><br>
<div><b>EXEMPLES</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"> La commande <b>catch</b> peut <20>tre employ<6F>e dans un <A HREF="123.htm"><b>if</b></A> pour des choix bas<61>s sur le succ<63>s d'un script. </div>
<CODE><div ALIGN="LEFT" style="margin-left: 102px;">if &#123; &#91;catch &#123;open &#36;someFile w} fid] } &#123;<br>
puts stderr &quot;Ne peut ouvrir &#36;someFile en <20>criture&#92;n&#36;fid&quot;<br>
exit 1<br>
}</div>
</CODE>
<div ALIGN="LEFT" style="margin-left: 51px;">La commande <b>catch</b> n'interceptera pas les erreurs de syntaxe compil<69>es. La premi<6D>re fois que la proc <b>foo</b> sera appel<65>e, le corps sera compil<69> et une erreur Tcl sera g<>n<EFBFBD>r<EFBFBD>e. </div>
<CODE><div ALIGN="LEFT" style="margin-left: 102px;">proc foo &#123;} &#123;<br>
catch &#123;expr &#123;1 +- }}<br>
}</div>
</CODE><div ALIGN="LEFT" style="margin-left: 51px;"> </div><br>
<div>Derni<EFBFBD>re r<>vision: 8.0</div>
<br>
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A>&nbsp;&nbsp;<A HREF="93.htm"><b>Pr<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="95.htm"><b>Suivant</b></A></div>
</BODY></HTML>