1. 程式人生 > 資料庫 >Oracle PL/SQL異常處理方法解析

Oracle PL/SQL異常處理方法解析

Oracle資料庫中的異常:沒有異常的轉移,因為沒有受檢異常和非受檢異常得區分。

1.異常的產生:

2.異常的處理:

declare

  --變數定義,初始化賦值。

begin

  --變數的賦值,函式呼叫,if,while等。

exception

  --異常處理程式碼

  when others then 異常處理語句。

end;

3.異常的丟擲:raise

4.多異常處理:Java的多異常是通過資料型別區分,Oracle資料庫的多異常是通過異常編號區分。
區別不同的異常是實現多異常處理前提。

declare

  verror exception;--定義異常變數

  PRAGMA EXCEPTION_INIT(verror,-111111);--設定異常變數的編號

begin

  --變數的賦值,函式呼叫,if,while等。

exception

  •   when verror then 異常處理語句。--所丟擲的異常變數的編號是否和設定好的異常變數的編號一致。
  •   when others then 異常處理語句。--當所丟擲的異常編號在exception語句塊中不存在時,執行該語句(寫在最後)。

end;

5.自定義異常:Java中通過定義一個新的異常類實現的。Oracle中通過異常編號實現的。

eclare
  n number(1);
  v_error exception;
begin
  dbms_output.put_line('丟擲單個異常練習--n只有1位不能儲存數字10');
  n:=10;
  if n<=0 then
    raise v_error;
  end if;
  dbms_output.put_line(n);
exception
  when others then dbms_output.put_line('數值溢位');
end;

declare
  n number(1);
  v_error exception;
  PRAGMA EXCEPTION_INIT(v_error,-112122);
begin
  dbms_output.put_line('丟擲多個異常練習');
  n:=-1;
  if n<=0 then
    raise v_error;
  end if;
  dbms_output.put_line(n);
exception
  when v_error then dbms_output.put_line('不能為負');
  when others then dbms_output.put_line('數值溢位');
end;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。