1. 透過PL/SQL執行時引擎 2. 使用RAISE語句 3. 呼叫RAISE_APPLICATION_ERROR儲存過程 當資料庫或PL/SQL在執行時發生錯誤時,一個異常被PL/SQL執行時引擎自動丟擲。異常也可以透過RAISE語句丟擲 RAISE exception_name; 顯式丟擲異常是程式設計師處理宣告的異常的習慣用法,但RAISE不限於聲明瞭的異常,它可以丟擲任何任何異常。例如,你希望用TIMEOUT_ON_RESOURCE錯誤檢測新的執行時異常處理器,你只需簡單的在程式中使用下面的語句: RAISE TIMEOUT_ON_RESOUCE; 比如下面一個訂單輸入的例子,若當訂單小於庫存數量,則丟擲異常,並且捕獲該異常,處理異常 DECLARE inventory_too_low EXCEPTION; ---其他宣告語句 BEGIN IF order_rec.qty>inventory_rec.qty THEN RAISE inventory_too_low; END IF EXCEPTION WHEN inventory_too_low THEN order_rec.staus:="backordered";
1. 透過PL/SQL執行時引擎 2. 使用RAISE語句 3. 呼叫RAISE_APPLICATION_ERROR儲存過程 當資料庫或PL/SQL在執行時發生錯誤時,一個異常被PL/SQL執行時引擎自動丟擲。異常也可以透過RAISE語句丟擲 RAISE exception_name; 顯式丟擲異常是程式設計師處理宣告的異常的習慣用法,但RAISE不限於聲明瞭的異常,它可以丟擲任何任何異常。例如,你希望用TIMEOUT_ON_RESOURCE錯誤檢測新的執行時異常處理器,你只需簡單的在程式中使用下面的語句: RAISE TIMEOUT_ON_RESOUCE; 比如下面一個訂單輸入的例子,若當訂單小於庫存數量,則丟擲異常,並且捕獲該異常,處理異常 DECLARE inventory_too_low EXCEPTION; ---其他宣告語句 BEGIN IF order_rec.qty>inventory_rec.qty THEN RAISE inventory_too_low; END IF EXCEPTION WHEN inventory_too_low THEN order_rec.staus:="backordered";