projman/hlp/fr/tcl/catch.htm
2015-10-19 14:27:31 +04:00

35 lines
3.1 KiB
HTML

<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 être employée pour empecher les erreurs de faire échouer l'évaluation d'une commande. <b>Catch</b> appelle l'interpréteur Tcl récursivement pour exécuter <i>script</i>, et retourne toujours sans lever une erreur, indépendemment de toute erreur produite pendant l'exé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ère différente de zéro correspondant à 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'évaluation de <i>script</i> est affecté à 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ée par <i>script</i> est affectée à la variable. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Notez que <b>catch</b> intercepte toutes exceptions, incluant celles généré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ées sont les erreurs de syntaxe trouvées quand le script est compilé. Ceci est du à ce que la commande catch n'intercepte les erreurs qu'à l'exécution. Quand l'instruction catch est compilée, le script est aussi compilé et toutes les erreurs de syntaxe géné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 être employée dans un <A HREF="123.htm"><b>if</b></A> pour des choix basés sur le succè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 é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ées. La première fois que la proc <b>foo</b> sera appelée, le corps sera compilé et une erreur Tcl sera généré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è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écédent</b></A>&nbsp;&nbsp;<A HREF="95.htm"><b>Suivant</b></A></div>
</BODY></HTML>