• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

新一篇: Silktest天天学系列8-异常相关函数

发布: 2008-5-06 17:41 | 作者: Zeng YueTian | 来源: Zeng YueTian博客 | 查看: 137次 | 进入软件测试论坛讨论

领测软件测试网 作者Zeng YueTian,转载请注明出处http://blog.csdn.net/yuetiantian/
 
Raise语句会产生一个异常,并且会将控制权交给异常处理或者是停止脚本的执行。Raise语句的原型为:
raise [integer-expr [, expr [, cmd-line]]]
其中,integer-expr是一个可选项,是你想要在错误处理部分抛出的异常号。
Expr:可选项,是一个关于异常的并且包含信息的任何类型表达式。你可以指定一个包含错误解释的字符串,或者你可以从silktest中调用内置的4Test函数得到这些信息。
Cmd-line:可选项,一个包含命令行的表达式,如果你指定了它,结果文件将在错误行显示一个图标,当你点击该图标,错误行将被执行。
下面是一个关于raise用法的例子,这些代码出现在raise.t的脚本中。
// this script is in a file called raise.t     
testcase raiseExample ()   //--------------àline 1
          STRING sTestValue = "xxx"
          STRING sExpected = "yyy"
          TestVerification (sExpected, sTestValue)   //-----------àline 5
      
       TestVerification (STRING sExpected, STRING sTestValue)
          if (sExpected == sTestValue)
             Print ("Test was successful")
          else
             raise 1, "ERROR: Test verification failed"       //------------àline 11
在第5行的函数TestVerification中,由于xxx和yyy不相等,所以将在11行用raise语句抛出一个异常,该异常的号码是11,关于该异常的相关信息是ERROR: Test verification failed。所以实际的结果文件为:
ERROR: Test verification failed
Occurred in TestVerification at raise.t(11)
Called from raiseExample at raise.t(5)
 
Reraise语句将再次产生一个异常,并且将控制权移交给下一个异常处理程序。当一个异常处理程序已经捕获了原来的异常,但是你希望把控制权交给下一个异常处理程序,当然如果有的话。那么reraise将把控制权交给当前块的下一个异常处理程序,或者是产生该异常的函数的块。如果没有其他的异常处理程序被发现,脚本将停止执行。
下面用一个例子来说明reraise的用法:
// This script is stored in a file called reraise.t
       testcase reraiseExample ()
          LIST OF INTEGER liXcept
          do
             BuildList (liXcept)
          except
             Print (liXcept)
             reraise
       BuildList (out LIST OF INTEGER liXcept)
          const LIST OF INTEGER liNum = {...}
              20
              10
              0
              5
          INTEGER i
          liXcept = {}
          for each i in liNum
             ListAppend (liXcept, 100 / i)
很显然在BuildList的最后一行执行到liNum[3]时会抛出一个异常,这个时候会打印此时liXcept的值,并且重抛该异常,由于没有其他的异常处理程序了,所以脚本将会停止运行。
下面是另外一个例子:
[-] testcase Reraise ()
       [ ] string xstr="xxx"
       [ ] string ystr="yyy"
       [-] do
              [-] do
                     [ ] Verify(xstr,ystr)
              [-] except
                     [ ] print("I catch the exception,i will reraise it")
                     [ ] reraise
                     [ ] print("After reraise exception here.")
       [-] except
              [ ] print("I get the reraised error")
大家可以执行看看是什么结果。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: silktest SilkTest SilKtest Silktest 相关函数


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网