求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 
 

Tcl 教程
Tcl环境设置
Tcl特殊变量
Tcl基本语法
Tcl命令
Tcl数据类型
Tcl变量
Tcl运算符
Tcl决策
Tcl循环
Tcl数组
Tcl字符串
Tcl列表
Tcl字典
Tcl过程
Tcl包
Tcl命名空间
Tcl文件I/O
Tcl错误处理
Tcl内置函数
Tcl正则表达式
 
 

TCL错误处理
1020 次浏览
35次  

Tcl的错误处理设置有error 和 catch命令。对每个这些命令语法如下所示。

Error 语法

error message info code

在上面的 error命令语法,message是错误信息,info是在全局变量errorInfo中设置,code是在errorCode设置的全局变量。

Catch 语法

catch script resultVarName

另外,在上述catch 命令语法,脚本是要执行的代码,resultVarName是可变保存错误或结果。 catch命令返回0,如果没有错误,如果有一个错误,返回1。

对于简单的错误处理一个例子如下所示。

#!/usr/bin/tclsh
proc Div {a b} {
if {$b == 0} {
error "Error generated by error" "Info String for error" 401
} else {
return [expr $a/$b]
}
}
if {[catch {puts "Result = [Div 10 0]"} errmsg]} {
puts "ErrorMsg: $errmsg"
puts "ErrorCode: $errorCode"
puts "ErrorInfo:\n$errorInfo\n"
}

当执行上面的代码,产生以下结果:

ErrorMsg: Error generated by error
ErrorCode: 401
ErrorInfo:
Info String for error
(procedure "Div" line 1)
invoked from within
"Div 10 0" Result = 5

正如在上面的例子中看到,我们可以创建自己的自定义错误消息。同样地,也能够捕捉由Tcl所产生的错误。一个例子如下所示。

#!/usr/bin/tclsh
catch {set file [open myNonexistingfile.txt]} result
puts "ErrorMsg: $result"
puts "ErrorCode: $errorCode"
puts "ErrorInfo:\n$errorInfo\n"

当执行上面的代码,产生以下结果:

ErrorMsg: couldn't open "myNonexistingfile.txt": no such file or directory
ErrorCode: POSIX ENOENT {no such file or directory}
ErrorInfo:
couldn't open "myNonexistingfile.txt": no such file or directory while executing
"open myNonexistingfile.txt"

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



1020 次浏览
35次
 捐助