Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tcl 如何打印服务调用返回的错误消息?_Tcl - Fatal编程技术网

Tcl 如何打印服务调用返回的错误消息?

Tcl 如何打印服务调用返回的错误消息?,tcl,Tcl,当我运行下面的TCL代码时,我得到了第一个服务调用ie的成功输出 “结果=xyz” 但是,第二个服务调用执行该服务,该服务返回一个错误,因为我们在if循环中输入了该错误,但是它不打印服务调用返回的错误消息,只打印一个空字符串 proc serviceCall {prefix} { return [mimic.list :prefix $prefix] } puts "###### Svc Call With prefix set to Single Char #############

当我运行下面的TCL代码时,我得到了第一个服务调用ie的成功输出

“结果=xyz”

但是,第二个服务调用执行该服务,该服务返回一个错误,因为我们在if循环中输入了该错误,但是它不打印服务调用返回的错误消息,只打印一个空字符串

proc serviceCall {prefix} {
    return [mimic.list :prefix $prefix]
}

puts "###### Svc Call With prefix set to Single Char ################## \n"
if {[catch {puts "Result = [serviceCall \"l\"]"} errmsg]} {
   puts "ErrorMsg: $errmsg\n"
}

puts "\n\n###### Svc Call With prefix set to space ################## \n"
if {[catch {puts "Result = [serviceCall \"\ \" ]"} errmsg]} {
   puts "ErrorMsg: $errmsg\n"
}
您可能希望使用而不是
catch
,并且使用较少的反斜杠(除非您indend向proc发送一个带文字引号的3字符字符串)


问题似乎出在
mimic.list
命令上,但如果不知道它是如何定义的,我不能说得更多。什么是
if循环
?请。打印(来自
mimic.list的实际实现)并发布返回选项字典的内容:
catch{serviceCall“l”}msg opts;puts opts=$opts
?请。在实际脚本中填充时打印
opts
,而不是在运行我之前评论中的示例性片段时。太棒了,先生,谢谢。请您也解释一下为什么在我的代码捕获语句中没有正确打印错误消息?谢谢。可能是命令替换中的转义引号在带引号的字符串中
puts "###### Svc Call With prefix set to Single Char ################## \n"
try {
    puts "Result = [serviceCall "l"]"
} on error errmsg {
    puts "ErrorMsg: $errmsg"
}