Error handling 使用tcl for循环创建多个组件时跳过错误消息

Error handling 使用tcl for循环创建多个组件时跳过错误消息,error-handling,try-catch,tcl,Error Handling,Try Catch,Tcl,我是TCL的新手。很抱歉问这么简单的问题。我想使用TCL创建实体 如果在我的范围内有任何组件,我想跳过它并向前增加1步 例如,我创建了comp pshell.15,这段代码一直工作到15岁,然后带着错误退出 请帮助我跳过此错误 问候 for {set i 10} {$i <20} {incr i} { *createentity comps name=pshell.$i id=$i puts $i if { [catch {*?????? }] } {

我是TCL的新手。很抱歉问这么简单的问题。我想使用TCL创建实体

如果在我的范围内有任何组件,我想跳过它并向前增加1步

例如,我创建了comp pshell.15,这段代码一直工作到15岁,然后带着错误退出

请帮助我跳过此错误

问候


for {set i 10} {$i <20} {incr i} {

 *createentity comps name=pshell.$i id=$i
 puts $i
            if { [catch {*?????? }] } {
                incr i 
                continue
                

}
}


对于{set i 10}{$i一般来说,假设
*createentity comps name=pshell.$i id=$i
命令是正确的(不管它是什么,我真的不知道!),要在失败的情况下跳过错误消息,您应该使用
try
。这不会跳过命令,但是,这只允许您优雅地处理它

继续之前,无需
增加i

for {set i 10} {$i < 20} {incr i} {
  try {
    *createentity comps name=pshell.$i id=$i
  } on error {} {
    continue
  }
  puts $i
}
对于{set i 10}{$i<20}{incr i}{
试一试{
*createentity comps name=pshell.$i id=$i
}关于错误{}{
持续
}
投入$i
}

是输入中的
*
字符,还是它们试图突出显示内容?(代码高亮显示器根本不尊重它们。)我这样问是因为它不是命令名中的常见字符。此外……错误消息说什么?Tcl的错误消息通常非常擅长描述眼前的问题。