在PL/SQL中,可以使用BEGIN ... EXCEPTION ... END
塊進(jìn)行異常處理。這個(gè)塊允許你捕獲和處理可能在代碼塊中發(fā)生的異常。以下是一個(gè)簡單的示例,展示了如何在PL/SQL中進(jìn)行異常處理:
DECLARE
-- 聲明變量
v_number NUMBER := 10;
v_result NUMBER;
BEGIN
-- 嘗試執(zhí)行可能引發(fā)異常的代碼
v_result := v_number / 0;
EXCEPTION
-- 當(dāng)異常發(fā)生時(shí),執(zhí)行此處的代碼
WHEN OTHERS THEN
-- 使用SQLERRM獲取異常信息
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
-- 根據(jù)異常類型進(jìn)行相應(yīng)的處理
IF SQLCODE = -847 THEN
DBMS_OUTPUT.PUT_LINE('Error: Division by zero');
ELSE
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLCODE || ' - ' || SQLERRM);
END IF;
END;
/
在這個(gè)示例中,我們嘗試將一個(gè)數(shù)除以零,這會(huì)引發(fā)一個(gè)ORA-01476
異常(除數(shù)為零)。我們使用WHEN OTHERS THEN
捕獲所有其他類型的異常,并使用SQLERRM
函數(shù)獲取異常信息。然后,我們根據(jù)異常類型進(jìn)行相應(yīng)的處理。