異常處理(Oracle學(xué)習(xí))

七歲那年趾撵,我抓到一只蟬屎勘;就以為能抓住整個(gè)夏天

異常處理:就是當(dāng)發(fā)現(xiàn)異常出現(xiàn)涎嚼,則捕獲提示

預(yù)定義的 Oracle 異常,有異常名挑秉,有錯(cuò)誤代碼法梯,有異常信息。
非預(yù)定義的 Oracle 異常犀概,有錯(cuò)誤代碼立哑,有異常信息,但是沒有異常名字姻灶。

在實(shí)際開發(fā)中铛绰,我們的異常處理,一般情況下都是需要使用 Java 代碼方式來處理产喉。因?yàn)槲覀儗W(xué)習(xí)的 Java 語言是面向?qū)ο蟮?/p>

  1. Oracle 數(shù)據(jù)庫其實(shí)是一個(gè)關(guān)系型數(shù)據(jù)庫捂掰,如果要操作的話,太麻煩了曾沈。

  2. C 面向過程:步驟需要詳細(xì)到每一步这嚣,所有的資源釋放都要自己來。

  3. Java 面向?qū)ο螅核械臉I(yè)務(wù)邏輯塞俱,交給對應(yīng)的對象去執(zhí)行姐帚。

     declare
            vid int;
            vname varchar(2);  
     begin
            select id, name into vid, vname from     tb_stuu;
        dbms_output.put_line('vid 的值:' || vid );
        dbms_output.put_line('vname 的值:' || vname );
    
    exception
        when too_many_rows then
             dbms_output.put_line('如果有太多數(shù)據(jù)返回');
        when no_data_found then
             dbms_output.put_line('找不到對應(yīng)的數(shù)據(jù)');
        when others then
             dbms_output.put_line('其實(shí)我也懵的..愿主保佑你');
     end;
    

自定義異常

 declare
   myexcption exception;
begin
   dbms_output.put_line('------ 前 ------');
   -- 制造一個(gè)異常
   raise myexcption;
   dbms_output.put_line('------ 后 ------');

實(shí)現(xiàn)異常

 exception 
      when myexcption then 
         dbms_output.put_line('不要緊張,這個(gè)是自己做的異常..無毒的');  
      when others then 
         dbms_output.put_line('這個(gè)有可能是有毒的哦...');    
end;

一般情況下障涯,我們在開發(fā)捕獲異常時(shí)罐旗,需要關(guān)系幾個(gè)點(diǎn)
什么異常?主要根據(jù)名字做初步判斷唯蝶。
什么時(shí)候報(bào)的九秀?看一下,最近有沒有哪個(gè)模塊發(fā)生改動(dòng)粘我,快速定位鼓蜒。
具體信息是什么?根據(jù)詳細(xì)信息推斷出問題所在涂滴,及時(shí)修復(fù)友酱。

創(chuàng)建一張表,來收集異常信息

create table tb_error (
       id int primary key,
       errorObject varchar(100),
       errorCode varchar(100),
       errorMsg varchar(200),
       errorDate date
);

創(chuàng)建序列
-- %ROWTYPE:用于給變量賦值對應(yīng)的類型柔纵,
-- 相當(dāng)于 User user = new User();中給 user 變量賦值的作用

create sequence error_seq;

select * from tb_error;

declare 
   vstuu tb_stuu%ROWTYPE; -- tb_stuu 表的變量
   vmsg varchar(200);   -- 異常信息
   vcode varchar(100); -- 異常編碼
begin

如果我們查詢一條不存在的記錄缔杉,則報(bào)錯(cuò)

select * into vstuu from tb_stuu where id = 5;
dbms_output.put_line('查詢到的名字是:' || vstuu.name);  

 exception
  when others then
    vcode := sqlcode;
    vmsg := sqlerrm;

如果發(fā)生異常的話,則需要往 tb_error 表中插入數(shù)據(jù)

         insert into tb_error(id, errorobject, errorcode, errormsg, errordate)
        values (error_seq.nextval, 'exceptionName', vcode, vmsg, sysdate); 
  
    commit;
end;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搁料,一起剝皮案震驚了整個(gè)濱河市或详,隨后出現(xiàn)的幾起案子系羞,更是在濱河造成了極大的恐慌,老刑警劉巖霸琴,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椒振,死亡現(xiàn)場離奇詭異,居然都是意外死亡梧乘,警方通過查閱死者的電腦和手機(jī)澎迎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來选调,“玉大人夹供,你說我怎么就攤上這事∪士埃” “怎么了哮洽?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長弦聂。 經(jīng)常有香客問我鸟辅,道長,這世上最難降的妖魔是什么莺葫? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任匪凉,我火速辦了婚禮,結(jié)果婚禮上徙融,老公的妹妹穿的比我還像新娘洒缀。我一直安慰自己瑰谜,他們只是感情好欺冀,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萨脑,像睡著了一般隐轩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渤早,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天职车,我揣著相機(jī)與錄音,去河邊找鬼鹊杖。 笑死悴灵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骂蓖。 我是一名探鬼主播积瞒,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼登下!你這毒婦竟也來了茫孔?” 一聲冷哼從身側(cè)響起叮喳,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缰贝,沒想到半個(gè)月后馍悟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剩晴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年锣咒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赞弥。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宠哄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗤攻,到底是詐尸還是另有隱情毛嫉,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布妇菱,位于F島的核電站承粤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏闯团。R本人自食惡果不足惜辛臊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望房交。 院中可真熱鬧彻舰,春花似錦、人聲如沸候味。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽白群。三九已至尚胞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帜慢,已是汗流浹背笼裳。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粱玲,地道東北人躬柬。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像抽减,于是被迫代替她去往敵國和親允青。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容