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腳本的武器?
文章來源于領測軟件測試網 http://www.k11sc111.com/