35 lines
3.1 KiB
HTML
35 lines
3.1 KiB
HTML
<HTML><HEAD>
|
|
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
|
|
</HEAD>
|
|
<BODY>
|
|
<div><H3><b>catch 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 { [catch {open $someFile w} fid] } {<br>
|
|
puts stderr "Ne peut ouvrir $someFile en écriture\n$fid"<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 {} {<br>
|
|
catch {expr {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> <A HREF="93.htm"><b>Précédent</b></A> <A HREF="95.htm"><b>Suivant</b></A></div>
|
|
</BODY></HTML>
|