夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          <2011年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          公告

          本博客中未注原創的文章均為轉載,對轉載內容可能做了些修改和增加圖片注釋,如果侵犯了您的版權,或沒有注明原作者,請諒解

          常用鏈接

          留言簿(21)

          隨筆分類(644)

          隨筆檔案(669)

          文章檔案(6)

          最新隨筆

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          異常是程序執行是出現的事件,它會打斷程序的正常執行.
          異常分以下幾類:
          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 閱讀(171) 評論(0)  編輯  收藏 所屬分類: DataBase
          主站蜘蛛池模板: 永和县| 平阳县| 郧西县| 东至县| 巴马| 会昌县| 虞城县| 武功县| 额尔古纳市| 广东省| 治多县| 深州市| 如东县| 法库县| 长沙市| 乐业县| 神农架林区| 天祝| 营山县| 永顺县| 扶余县| 曲阳县| 江安县| 莒南县| 永年县| 邛崃市| 湖州市| 尼勒克县| 东安县| 健康| 建宁县| 澄江县| 邢台市| 郓城县| 宜州市| 昆明市| 东城区| 大丰市| 呼玛县| 沾益县| 乐业县|