一:說明
Oracle數據庫底冊定義了很多異常,每個異常都有一個唯一的編碼,這些異常之中,有一些是常見的,Oracle給這些異常定義了名稱,可以直接使用,其他沒有名稱直郵編碼的不能直接使用。
二:分類
1)預定義異常
既有編碼又有名稱的異常是預定義異常,此類異常可以直接使用
2)非預定義異常
有編碼但沒有名稱的異常是非預定義異常,此類異常不能直接使用,要想使用需要先聲明一個異常名與編碼綁定。
3)自定義異常
既沒有編碼又沒有名稱的異常是自定義異常,此類異常需要我們自己定義。
三:異常的使用
1)預定義異常的使用
a.語法
exception
when 異常名 then
--異常處理
b.練習:使用two_many_rows預定義異常
declare
a number;
begin
select sal into a from emp;
exception
when too_many_rows then
dbms_output.put_line('多行對一行,不可以');
end;
/
2)非預定義異常的使用
a.語法
declare
--聲明異常
異常名 exception;
--綁定異常編碼
pragma exception _init(異常名,編碼);
begin
exception
when 異常名 then
--異常處理
end;
/
3) 自定義異常的使用
a、語法
declare
--聲明異常
異常名 exception;
begin
--某條件發生時,拋出異常
raise 異常名;
exception
when 異常名 then
--異常處理
end;
/