如何打印服务呼叫返回的错误消息?

时间:2018-07-30 02:09:59

标签: tcl

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

  

“结果= 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"
}

1 个答案:

答案 0 :(得分:1)

您可能希望使用try而不是catch,并使用较少的反斜杠(除非您打算向proc发送带有文字引号的3个字符串)

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