Posted on 2021-09-17 10:59
eryar 閱讀(986)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
1.PipeCAD
PipeCAD - 異常處理
eryar@163.com
Key Words. PipeCAD, 三維管道設(shè)計(jì)軟件,異常處理,Exception
1 Introduction
面向?qū)ο蟪绦蜷_(kāi)發(fā)語(yǔ)言都提供了異常處理Exception。程序中的錯(cuò)誤是多樣化的,但出現(xiàn)錯(cuò)誤程序直接崩潰,但發(fā)現(xiàn)錯(cuò)誤能提供一些方式對(duì)錯(cuò)誤加以糾正也比程序直接崩潰要友好很多。異常機(jī)制則通過(guò)規(guī)定異常可能發(fā)生的區(qū)域try,以及異常捕捉catch,來(lái)處理發(fā)生異常的善后問(wèn)題。對(duì)于拋擲出來(lái)異常,可能是跨越數(shù)個(gè)函數(shù)調(diào)用而被捕捉處理。捕捉是根據(jù)拋擲的對(duì)象類(lèi)型與捕捉對(duì)象類(lèi)型的匹配來(lái)完成。
熟悉PDMS的腳本PML開(kāi)發(fā)的技術(shù)人員,對(duì)于PML中異常應(yīng)該會(huì)熟練使用。當(dāng)使用PML報(bào)錯(cuò)時(shí),會(huì)給出一個(gè)編號(hào)(由帶括號(hào)的兩個(gè)數(shù)字組成):

這就是PML中的異常。對(duì)于異常的捕捉處理采用如下寫(xiě)法:

關(guān)于PML更多異常處理細(xì)節(jié)可以參考PDMS的文檔《Software Customisation Guide》。本文主要介紹PipeCAD中的異常處理。
2 Exceptions
因?yàn)?/span>PipeCAD的腳本是使用Python,所以當(dāng)一個(gè)命令沒(méi)有成功執(zhí)行或者有其他Python語(yǔ)句有語(yǔ)法錯(cuò)誤時(shí),都會(huì)拋出異常。拋出異常后,腳本剩余部分代碼將會(huì)中斷,不被執(zhí)行。并會(huì)給出錯(cuò)誤原因的提示。

在PipeCAD中,對(duì)于可能拋出異常的地方加上try,異常的捕捉?jīng)]有像PML那樣給出一個(gè)編號(hào),但是給出了異常的類(lèi)型,根據(jù)異常不同的類(lèi)型可以進(jìn)行相應(yīng)的異常處理。如上圖是管理Admin模塊中創(chuàng)建用戶User時(shí)對(duì)于重名的異常處理:

在命令窗口會(huì)現(xiàn)錯(cuò)誤信息提示,在異常處理中也可以彈出錯(cuò)誤對(duì)象框。
3 Conclusion
PipeCAD有的腳本使用Python,PipeCAD中的異常處理方式就是Python中異常處理的方式。PipeCAD實(shí)現(xiàn)自定義命令函數(shù)的異常處理,提高程序的健壯性。當(dāng)有異常發(fā)生時(shí),會(huì)給用戶以信息提示。對(duì)于有腳本開(kāi)發(fā)能力的技術(shù)人員來(lái)說(shuō),通過(guò)對(duì)異常的處理,可以方便實(shí)現(xiàn)一些功能。如當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),對(duì)象名稱(chēng)已經(jīng)使用,則可以對(duì)這個(gè)名稱(chēng)的對(duì)象進(jìn)行一些屬性修改這個(gè)功能來(lái)說(shuō),使用異常就更直接。
致力于國(guó)產(chǎn)三維管道設(shè)計(jì)軟件的開(kāi)發(fā),若您有任何意見(jiàn)、建議,歡迎交流。