夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          異常是程序執行是出現的事件,它會打斷程序的正常執行.
          異常分以下幾類:
          1.預定義異常,它是由plsql預先定義,如:
             NO_DATA_FOUND,
             TOO_MANY_ROWS
             VALUE_ERROR
             ...................

          2.非預定義異常,它是處理與預定義異常無關的錯誤.
             要使用非預定義異常,要經過以下三步:
             1).定義異常標識符
             2).錯誤號與異常之間建立關聯
             3).捕捉異常
             例子:
             
          declare
              e_my_exception Exception;
              pragma Exception_init(my_exception,
          -2220);
             
          begin
              ..
             Exception
                
          when my_exception then
                    
             
          End;


          3.自定義異常,自定義異常是用戶自己定義的異常.自定義異常一般不是處理執行發生的錯誤,而是處理業務規則錯誤.
             要使用自定義異常,需要經過以下幾個步驟:
             1.定義異常
             2.觸發異常
             3.捕獲異常
             例子:
             
             
          declare
              e_my_exception Exception;
              pragma Exception_init(my_exception,
          -2220);
             
          begin
              
          update tableName set=name='hui' where id='1234'
              
          if sql%notfound then
                  raise e_my_exception ;
             
          end if;
            Exception
                
          when my_exception then
                    
             
          End;
            

           4.異常處理函數
              1.raise_application_error, 該過程只適用于數據庫子過程(過程,函數,包觸發器).
              2.sqlcode 捕獲錯誤碼
              3.sqlerrm 捕獲錯誤消息
              例子:
          Begin
               
          update
               
          if sql%notfound then
                  raise_application_error(
          -20008,'沒有數據');
               
          end if
          Exception 
                  
          when others then
                      dbms_out.put_line(
          '錯誤號:'||sqlcode);
                      dbms_out.put_line(
          '錯誤號:'||sqlerrm);
          end;

          5.編譯警告
             alter session set plsql_warnings='enable:all';
          posted on 2011-07-11 17:34 HUIKK 閱讀(169) 評論(0)  編輯  收藏 所屬分類: DataBase
          主站蜘蛛池模板: 玉龙| 华蓥市| 福州市| 涟源市| 寿光市| 云霄县| 黔西| 洛宁县| 化德县| 滦平县| 武隆县| 永泰县| 阿图什市| 内黄县| 柳州市| 巴南区| 得荣县| 全州县| 南丹县| 开化县| 勃利县| 成安县| 前郭尔| 六盘水市| 江油市| 雷山县| 五莲县| 石楼县| 洛扎县| 胶州市| 垣曲县| 墨竹工卡县| 乐都县| 炎陵县| 灵武市| 鄂伦春自治旗| 陆川县| 石林| 晋州市| 临清市| 宜章县|