在 TCL 中需要有关 return -<options> 的信息
Need info about return -<options> in TCL
TCL return 命令中有哪些可用选项?我可以看到 -code -errorcode -errorinfo 作为 return 命令的选项。但无法理解它们之间的区别。
proc new {} {
set name george
puts "Hello $name"
return -code ok
}
puts [new]
这里我没有得到任何输出,就像正常的 return 命令一样。但是可以在 return 命令中为 -code 获得更多选项,例如 break 、 continue 、 error 和 retun ……这些选项有什么用。
还有下面的代码让我感到困惑..
proc new {} {
set name george
puts "Hello $name"
return -code return -code return -code return
}
这样我们可以给更多,它没有出错,这个选项有什么用..
return
的选项列在手册页上:return。
-errorcode
、-errorinfo
、-errorstack
和 -level
用于描述异常的各个方面:-options
允许传递字典命令的异常数据。在您彻底了解该语言并编写高级异常处理代码之前,这些都不太可能对您有用。
-code
选项用于指定周围代码需要执行何种处理。 ok
表示无需特殊处理,命令结果为有效数据; error
意味着 catch
或 try
处理程序需要就位,否则程序将结束,而且命令的结果是一条错误消息。 break
和 continue
需要一个封闭的循环命令(或 catch
/ try
带有适当处理程序子句的命令)。 return
使使用它的命令表现得像 return
命令。除非您正在编写自己的控制结构,否则您可能不需要处理此选项。
-level
选项还允许 return
命令 return 到调用者以外的其他地方(但仍在调用堆栈中)。如果该值为 0,则 return 操作为 "in place":return
将 return 从自身开始,而不会终止它所属的脚本。第一行
set foo [return -level 0 bar]
puts {I'm still alive}
将作为 set foo bar
执行,评估将继续执行 puts
命令。 -level 1
对调用者意味着 return(通常的行为),-level 2
对调用者的调用者意味着 return,依此类推。
return 命令几乎接受其参数列表中的任何内容,并且像许多命令一样不会抱怨参数被重复。 return -code return -code return -code return
与 return -code return
做同样的事情。
TCL return 命令中有哪些可用选项?我可以看到 -code -errorcode -errorinfo 作为 return 命令的选项。但无法理解它们之间的区别。
proc new {} {
set name george
puts "Hello $name"
return -code ok
}
puts [new]
这里我没有得到任何输出,就像正常的 return 命令一样。但是可以在 return 命令中为 -code 获得更多选项,例如 break 、 continue 、 error 和 retun ……这些选项有什么用。 还有下面的代码让我感到困惑..
proc new {} {
set name george
puts "Hello $name"
return -code return -code return -code return
}
这样我们可以给更多,它没有出错,这个选项有什么用..
return
的选项列在手册页上:return。
-errorcode
、-errorinfo
、-errorstack
和 -level
用于描述异常的各个方面:-options
允许传递字典命令的异常数据。在您彻底了解该语言并编写高级异常处理代码之前,这些都不太可能对您有用。
-code
选项用于指定周围代码需要执行何种处理。 ok
表示无需特殊处理,命令结果为有效数据; error
意味着 catch
或 try
处理程序需要就位,否则程序将结束,而且命令的结果是一条错误消息。 break
和 continue
需要一个封闭的循环命令(或 catch
/ try
带有适当处理程序子句的命令)。 return
使使用它的命令表现得像 return
命令。除非您正在编写自己的控制结构,否则您可能不需要处理此选项。
-level
选项还允许 return
命令 return 到调用者以外的其他地方(但仍在调用堆栈中)。如果该值为 0,则 return 操作为 "in place":return
将 return 从自身开始,而不会终止它所属的脚本。第一行
set foo [return -level 0 bar]
puts {I'm still alive}
将作为 set foo bar
执行,评估将继续执行 puts
命令。 -level 1
对调用者意味着 return(通常的行为),-level 2
对调用者的调用者意味着 return,依此类推。
return 命令几乎接受其参数列表中的任何内容,并且像许多命令一样不会抱怨参数被重复。 return -code return -code return -code return
与 return -code return
做同样的事情。