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>
 | 
