夢幻之旅

          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 閱讀(168) 評論(0)  編輯  收藏 所屬分類: DataBase
          主站蜘蛛池模板: 光泽县| 德兴市| 柘荣县| 安岳县| 互助| 乡宁县| 获嘉县| 凤城市| 尼木县| 星子县| 昌黎县| 揭西县| 牙克石市| 汉中市| 沙雅县| 阜新市| 姜堰市| 淮南市| 普宁市| 城口县| 琼结县| 金沙县| 佛坪县| 沙湾县| 万山特区| 易门县| 宁南县| 九龙坡区| 林芝县| 临沭县| 柏乡县| 宝兴县| 驻马店市| 龙南县| 台南市| 庆城县| 乌拉特后旗| 敖汉旗| 兴义市| 滕州市| 东莞市|