TCL错误与异常处理相关命令

**

TCL错误与异常处理

**
相关命令

	catch command ?returnVar? ?optionsVar?
		将command作为TCL脚本处理,返回标志该命令完成状态的整形值,命令完成返回0,命令异常返回1;
		指定returnVar,该变量被设置为command的返回值或产生的错误信息;
		指定optionsVar,该变量设置为返回的选项字典
	error messgae ?info? ?code?
		产生一个错误,以message作为错误消息。
		给定info,而且不是空字符串,那么将用于初始化errorInfo变量
		给定code,他将存放至errorCode变量中
	return ?option value ...? ?result?
		使当前过程返回一个异常状态
	interp bgerror path ?cmdPrefix?
		将cmdPrefix注册为由path指定的解释器的后台错误处理器

错误生成方式

	TCL错误可能由实现TCL解释器的C代码或内建命令生成
	也可以由TCL命令error生成

错误及异常处理

1>由TCL脚本生成错误,应该只在需要放弃正在运行的脚本时才使用error命令
	if {($x < 0) || ($x > 100)} {
		error "x is out of range ($x)";
	}
2>catch捕获异常,当异常被捕获后可以继续运行某个脚本
	示例:
		#a.对“文件是否可以打开”进行异常捕获
		if {[catch {open $fp} fid]} {
			puts stderr "ERROR! $fid\n Please try again!";
			return;    #返回上一级
			#exit 1;   #结束脚本
		}
		#其中,fid设置为错误消息。
		#如果脚本正常运行,open正常返回,catch返回值为0,而fid的内容是open的返回值,即打开的文件通道描述
		
		#b.对“使用tdom库读取文件名为fp的文件并赋值给xmlfd”的脚本进行异常捕获
		if {[catch {set xmlfd [tDOM::xmlReadFile $fp]} fid]} {
			puts stderr "ERROR! $fid\n Please try again!";
			return;
			#exit 1;   
		}
		
		#c.对“判断该结点是否含有“name”属性”的脚本进行异常捕获,等价于“判断该结点是否存在”
			if {[catch {$finded_node hasAttribute "name"} fid]} {
				puts stderr "ERROR! The finded_node not exist!\n";
				return;  
			}
			
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值