官术网_书友最值得收藏!

2.7 DM SQL程序異常處理

在DM SQL程序的執(zhí)行過程中,當(dāng)各種原因使語句不能正常執(zhí)行時,可能會發(fā)生錯誤或使整個系統(tǒng)崩潰,所以應(yīng)該采取必要的措施防止這種情況的發(fā)生。

在DM SQL程序中出現(xiàn)的警告或錯誤稱為異常,對異常的處理稱為異常處理。雖然在DM SQL程序設(shè)計中,異常處理部分不是必須編寫的,但建議養(yǎng)成在DM SQL程序設(shè)計中對可能出現(xiàn)的異常進(jìn)行指定和處理的習(xí)慣。最好針對明顯可能出現(xiàn)的錯誤加以描述并處理,這樣在DM SQL程序執(zhí)行過程中,無論何時發(fā)生錯誤,控制權(quán)都會自動地轉(zhuǎn)向執(zhí)行異常處理部分;否則,當(dāng)程序在運行中出現(xiàn)錯誤時,程序就會被自動中止。另外,許多被中止的DM SQL程序是不容易被用戶發(fā)現(xiàn)的。

【例2-49】異常舉例。

img
img

由于SELECT INTO語句每次只能獲取一行數(shù)據(jù),因此運行時會發(fā)生錯誤,程序異常中止。如果加上異常處理程序,程序就不會異常中止。正確的做法是:

img

異常包括預(yù)定義異常和用戶自定義異常。預(yù)定義異常是DM數(shù)據(jù)庫系統(tǒng)已定義的異常,可以在程序中直接使用,不必在定義部分聲明,常用的預(yù)定義異常如表2-8所示。用戶自定義異常需要在定義部分聲明后才能在可執(zhí)行部分使用。用戶自定義異常不一定是達(dá)夢數(shù)據(jù)庫的錯誤,也可以是其他錯誤,如數(shù)據(jù)錯誤。

表2-8 常用的預(yù)定義異常

主站蜘蛛池模板: 潞城市| 安泽县| 黄平县| 新泰市| 通辽市| 香港| 东乌| 岑巩县| 洪泽县| 镇康县| 福安市| 鄂托克旗| 桂林市| 灵丘县| 邻水| 威信县| 兰西县| 濮阳县| 汉沽区| 张家港市| 陕西省| 三明市| 龙南县| 房产| 诏安县| 敦煌市| 大渡口区| 大荔县| 广安市| 泸州市| 昌邑市| 新邵县| 疏附县| 梨树县| 西乌| 汕头市| 阳泉市| 安义县| 儋州市| 平昌县| 琼结县|