03.except
04. LogError ("can't click OneObject")
05.DoSomeOtherThings()
Do
OneObject.Click()
except
LogError ("can't click OneObject")
DoSomeOtherThings()
假如我们执行上面得代码时,OneObject这个对象并没有出现,那么OneObject.Click()这句就会抛出一个异常,没关系,紧接其后的except结构会发现这个异常,并且记录一个Error的log,当except结构中的语句都执行完后,SilkTest将继续正常执行,也就是执行do…except结构之后的DoSomeOtherThings()语句。
说了这么多,让我们在Cal.t这个会抛出异常的case中引入异常处理机制吧。
我们改写代码成如下形式:
[-] winclass Calculator
[ ] String sResult
[-] Void ClearResult()
[ ] 计算器.C.Click()
[-] void GetResult()
[ ] sResult = 计算器.CalResult.GetText()
[-] Void ClickNum1()
[ ] 计算器.N1.Click()
[ ] window Calculator Cal
[-] testcase CalSetAndClear()
[ ] 计算器.SetActive()
[-] do //1
[ ] Cal.ClickNum1() //2
[ ] //Cal.GetResult() //3
[ ] Print(Cal.sResult) //4
[-] except //5
[ ] Print("Catch an exception") //6
[ ] Cal.ClearResult()
[ ] Cal.GetResult()
[ ] Print(Cal.sResult)
现在当SilkTest执行到行4时,会抛出一个异常,接着就被其后的except捕获这个异常,打印一句提示后,程序继续运行剩余的三行代码。最终的结果将打印:
[ ] Catch an exception
[ ] 0.
如果你没有注释行3的话,那么当然不会有异常被抛出,那么程序将会正常执行,也就是说except中的语句不会起作用。怎么样,你现在是不是又多了一种操纵silktest脚本的武器?
文章来源于领测软件测试网 https://www.ltesting.net/